1、河南大学软件学院,Java 编程基础,主讲:李丽,讲课方式,讲授理论举例布置练习详解,学习方式,踏实学知识按时完成练习要有自学能力读写查知识的分类经常用到,牢牢掌握不经常用到,了解极不经常用到,有能力去查,错误的学习方法,只看(听)不练钻进细节出不来闭门造车不敢调试,本书内容,第一章 快速入门 第二章 Java基本语法 第三章 类与继承 第四章 接口、抽象类与包 第五章 异常处理 第六章 GUI编程 第七章 网络编程 第八章 Java/IO系统 第九章 访问数据库 第十章 多线程 第十一章 项目实践一:贪吃蛇 第十二章 项目实践二:开发电力系统中的收费结算系统,参考文献及网站,1、网站 htt
2、p:/(英) (英) (中) http:/ 2、书籍 Bruce Eckel. Thinking in Java(JAVA编程思想) 李刚,疯狂Java讲义,电子工业出版社 Frederick P.Brooks. 人月神话, 软件工程 Stevem John Metsker, William C.Wake. JAVA设计模式,第一章 概述,1.1 Java简介 1.2 Java开发环境的搭建 1.3 Java应用程序 1.4 Java Applet 1.5 Eclipse开发工具,1.1 Java简介,1.1.1 Java的发展史 1.1.2 Java的特点,第一代语言打孔机纯机器语言第二代语
3、言汇编第三代语言C、Pascal、Fortran面向过程的语言C+面向过程/面向对象Java跨平台的纯面向对象的语言.NET跨语言的平台,1、计算机语言发展史和java的历史地位,2、Java历史及发展,历史:1991年,SUN MicroSystem公司的James Gosling、Bill Joy等人为在电视、控制烤箱等家用消费类电子产品上进行交互式操作而开发了一个名为Oak的软件。Oak Java:互联网给Java带来新的生机1995年Sun向公众推出Java并引起业界的轰动发展:面向网络应用,类库不断丰富,性能不断提高,应用领域不断拓展。(1995年以来),1.2 Java的历史及特性
4、,J2SE:Java 2标准版(Java 2 Standard Edition)是整个Java技术的核心和基础,为用户提供了开发与运行Java应用程序的编译器、基础类库及Java虚拟机等。 J2EE:Java 2企业版(Java 2 Enterprise Edition)是Java语言中最活跃的体系之一。J2EE不仅仅是指一种标准平台(Platform),更多的表达着一种软件架构和设计思想。它提供了一套完整的企业级应用开发解决方案。 J2ME:Java 2微型版(Java 2 Micro Edition)是用于移动设备、嵌入式设备上Java应用程序的开发,包括虚拟机和一系列技术规范。,Java
5、体系,95年,Sun发布了JDK1.0(Java Development Kit,Java开发工具包) 98年,JDK1.2,更名为java2 后续JDK1.3,1.4JDK1.5,更名为java5.0 目前JDK6.0,Java软件工程师的招聘要求,Java软件工程师(中软国际)1、计算机相关专业; 2年以上的Java/J2EE/J2SE/J2ME开发经验; 2、精通Struts/Spring/Hibernate/Tomat/JBoss/Apache; 3、Eclipse插件开发经验; 4、熟悉DB2、Oracle、SQL Server等数据库 5、优秀的英文读写能力,具备口语交流能力尤佳;
6、 6、较好的算法,数据结构能力;JAVA软件工程师的薪酬水平为500012000/月,除了基本工资还有项目奖金,并且根据绩效考核的结果薪酬也会有相应的浮动,您的学历和个人能力将与薪酬直接相关。,Software Development Engineer II for Healthcare (Microsoft)We are looking for a SDE II. The developer will have the opportunity to be part of a team to design, and implement a major product from ground u
7、p. We are looking for people with following qualifications: *Love to design and write great code; *With great technical passion, terrific problem-solving skills, drive for results, and ability to work independently; *Fluent in one of the major programming languages: C#, C, C+, or Java; *Significant
8、experiences in one of the following areas : .NET Framework, Web Services, Client/Server and Multitier Architecture, WPF/Silverlight, Database/SQL Server, and Multi Threaded Programming; *Minimum 3 year software development experiences,用高级语言书写的程序不可能直接地在计算机上执行,要在计算机上执行高级语言书写的程序,有两种基本方法:编译(Compilation)
9、执行:这种方法是设法把高级语言程序(也称为“源程序”)转换成为机器语言的可以由计算机直接执行的程序,即转变为“可执行(Executable)程序” 。“解释”(Interpretation)执行:这种方法是即时把源程序转换为机器可执行的指令。有时为了提高效率,也可以先编译成一种中间代码。,高级程序设计语言的执行,对于“编译执行”方式,人们实现了高级语言“编译器”(Compiler)完成这种转换工作。编译器把高级语言程序看成是符合一定语法结构的符号串,对它进行加工变换。编译器对源程序的加工一般分为两个阶段:源程序首先被翻译成机器语言,这种翻译结果称为“目标码”(object code),目标码构
10、成的程序片段称为目标模块。第二步,这些目标模块被与其他一些基本模块(由编译软件提供)连接在一起,最终形成“可执行程序”(executable program),这样的程序就可以在计算机上实际运行了。第一个加工步骤称为“编译”(compiling),第二个步骤称为“连接”(linking)。,“编译执行”方式,编 译 过 程,高级语言 源程序,编译,机器代码 目标程序,通用目标 程序模块,连接,可执行机器 语言程序,输入 数据,输出 结果,CPU 执行,编译过程,对于“解释执行” 方式,人们实现了一种称为“解释器”(Interpreter)的软件来完成转换工作。解释器在工作方式上与编译器不同,它
11、不对源程序进行整体性编译和链接,而是直接对源程序的语句进行分析和解释,实现源程序所描述的功能。,解 释 过 程,高级语言 源程序,解释,输入 数据,输出 结果,CPU 执行,解释过程,高级语言写出的程序是独立于任何具体的计算机的。但是“编译器”和“解释器”则是与机器相关的。同一种语言,对于不同的机器,需要不同的“编译器”和“解释器”。人们已经开发出了许多不同的高级程序设计语言,不同的语言有各自不同的规范,因此需要专门的“编译器”和“解释器”。,3、Java语言特点,面向对象 (2) 平台无关性 (3) 安全问题 (4) 多线程 (5) 可移植性 (6) 分布性 (7) 高性能(相对于其他解释型
12、语言) (8) 健壮性,3、Java程序运行机制及运行过程,Java两种核心机制: Java虚拟机制 垃圾收集机制,Java 程序运行过程,核心机制之Java虚拟机,Java虚拟机可以理解成一个以字节码为机器指令的CPU。对于不同的运行平台,有不同的虚拟机,实现了“一 ”次编 译,随处运行” 。Java虚拟机机制屏蔽了底层运行平台的差别。,字节码,源 程 序,Java编译器,SPARC,pentium,Powerpc,中间码,Powerpc,pentium,SPARC,二进制,源 程 序,SPARC,Powerpc,pentium,Powerpc,pentium,SPARC,编译器,二进制,J
13、ava解释器,编译型和解释型语言的工作模式,类、类库装载,(库)链接,核心机制之垃圾回收,不再使用的内存空间应回收一垃圾收集。在c/c+等语言中,由程序员负责回收无用内存。Java语言消除了程序员回收无用内存空间的责任;JRE负责回收那些不再使用的内存,通常JRE会提供一种系统级线程跟踪存储空间的分配情况。并在JVM的空闲时,检查并释放那些可被释放的存储器空间。垃圾收集在Java程序运行过程中自动进行,程序员无法精确控制和干预。,JDK和JRE,JDK,全称Java SE Development Kit,即Java标准版开发包,是Sun提供的一套用于开发Java应用程序开发包,它提供了编译,
14、运行Java程序所需要的各种工具和资源,包括Java编译器、 Java运行时环境,以及常用的Java类库等。JRE,全称Java Runtime Environment,包括Java虚拟机 (JVM),类加载器,字节码校验器以及大量基础类库。,回顾:,1、Java的发展历史,Java体系 2、Java程序的执行过程 3、Java的两大核心机制:Java虚拟机和垃圾回收,1.2 Java开发环境,一、安装开发环境JDK直接运行jdk-6u20-windows-i586.exe,按照安装向 导进行安装。,编译和运行Java程序的核心工具是Java开发工具包(Java Development Kit
15、,JDK),一般来说,JDK指的是Java SE。JDK包括开发工具集、Java运行环境(Java Runtime Environment,JRE)和Java的基础类库。 用户可以到http:/ 下载JDK。,1.2 Java开发环境,安装:,1、更改安装目录 2、选择安装组件: 开发工具:JDK核心,包括Java程序必须的命令工具, 也包含了运行java程序的JRE,这个JRE安装在 JDK安装目录的子目录里。演示程序和样例:大量的演示和实例代码源代码:java所有核心类库的源代码。公共JRE(可不选):一个独立的JRE系统,会单独安装在系统的 其他目录下,。安装公共JRE,它会向系统注册j
16、ava运行 时环境,对于任何应用程序,用户可以不用通过JDK目 录下的JRE而是通过公共JRE来运行java程序。Java DB (可不选):Sun公司的轻量级数据库,3、安装JDK后产生如下目录结构:bin目录:Java开发工具,包括Java编译器、解释器等demo目录:一些实例程序lib目录:JDK工具命令的实际执行程序jre目录: Java运行环境,包括Java虚拟机、运行类库等sample目录:示例代码scr.zip目录:java所有核心类库的源代码,安装:,配置:,4、设置PATH环境变量,编译和运行java程序的命令:javac和java 启动Windows操作系统的命令行窗口执行
17、命令。 Windows操作系统根据PATH环境变量来查找命令。,Windows XP/Vista/7:控制面板系统高级环境变量,PATH = bin;,设置环境变量:,编译和运行java程序的命令:javac和java,验证:,Java开发工具包括:javac:Java编译器,用来将java程序编译成 Bytecode。,编译java程序,初学者一般掌握javac的如下语法:javac -d destdir srcFile 例如:javac HelloWorld.java,通常,总是将生成字节码文件放在当前路径下,当前路径可以用(.)来表示。Javac编译文件只需要指定存放目标文件的位置即可,
18、无须指定字节码文件的文件名。实际上,指定目标文件存放位置的-d选项也是可以省略的,如果省略,则将生成的字节码文件放在当前路径下。,java:Java解释器,执行已经转换成Bytecode的 java应用程序。,运行java程序,初学者一般掌握javac的如下语法:javac Java类名 例如:javac HelloWorld,Java命令后的参数是Java类名,不是字节码文件的文件名,也不是Java源文件名。,CLASSPATH = . ; lib; 关于ClASSPATH: 如果使用JDK1.4以前的版本,则需在CLASSPATH环境变量中添加一个(.),并且编译和运行java程序还需要J
19、DK的lib路径下的dt.jar和tools.jar里的java类。因此还需要把这两个文件加入到CLASSPTH环境变量中。 从JDK1.4之后,JRE会自动搜索当前路径,并且系统可以自动加载dt.jar和tools.jar类。但是仍然可以设置CLASSPATH环境变量,一旦设置,则JRE会按当前路径来搜索java类,这意味着环境变量中不再包括(.),JRE不再搜索当前路径,如需搜索当前路径,还要添加(.)。,关于CLASSPATH,编辑存盘:文件名和公共类名(用public声明)要一致 HelloWorld.java 编译程序:javac HelloWorld.java 运行程序:java
20、HelloWorld 运行结果:Hello World!,public class HelloWorld public static void main(String args) System.out.println(“Hello World!”); ,6、Java程序 第一个Java应用程序,声明一个类:public class HelloWorld ,类名第一个字母大写。 一个类中可有很多方法, main方法是运行程序的第一个方法,方法名的第一个字母小写。 System.out.println是向屏幕输出,相当于C中的printf()。,public class HelloWorld pu
21、blic static void main(String args) System.out.println(“Hello World!”); ,6、Java程序 第一个Java应用程序,注意程序进入从一个类的main方法开始,必须保证主类HelloWorld中实现了main方法。必须保证HelloWorld.java文件在当前目录下必须保证PATH环境变量中有jdk_homebin,6、Java程序 第一个Java应用程序,Java程序的基本规则,Java程序必须以类的形式存在,类是Java程序的最小程序单元。Java程序不允许可执行语句、方法等成分独立存在,所有的程序部分必须放在类中。 Ja
22、va解释器规定,如果这个类能被解释执行则这个类必须包含main函数,main函数必须使用public static void main(String args)修饰。 对于那些不包含main方法的类,也是有用的类。对于一个大型的Java程序而言,往往只需要一个入口,也就是只有一个类包含main方法,而其它类都是用于被main方法直接或间接调用。,集成环境(IDE)JBuilder (Borland)Eclipse/MyEclipse (OpenSource/IBM)JCreatorBEA WebLogic WorkbenchNetbeans,关于注释,Java语言的注释一共有三种: 单行注释
23、多行注释 文档注释 单行注释: / 多行注释:/* */ 文档注释:/*文档注释*可以生成API文档*/,API接口,API接口 应用程序接口 API文档 用来说明这些应用程序接口的文档,对于Java语言来说,API文档通常详细说明了每个类、每个方法的功能。,API文档生成,可以使用Javadoc工具生成API文档,Javadoc工具只处理在类、接口、方法、属性、构造器和内部类之前的注释,忽略其它地方的文档注释,而且Javadoc工具默认只处理以public、protected修饰的类、接口、方法、属性、构造函数之前的注释,如果希望可以提取private修饰的内容,则可以在使用Javadoc工
24、具时增加-private选项。,Javadoc命令的基本用法如下:,javadoc 选项 Java源文件/包 javadoc的常用选项有如下几个: -d :该选项指定一个路径,用于将生成的API文档放到指定目录下。 -windowtitle:该选项指定一个字符串,用于设置API文档的浏览器窗口标题。 -doctitle:该选项指定一个HTML格式的文本,用于指定概述页面的标题。(如果有多个包下的源文件来生成API文档时,才有概述页面)。 -header:该选项指定一个HTML格式的文本,包含每个页面的页眉。,Javadoc常用标记,上述标记的使用是有位置限制的, 在类或接口文档注释中的有:se
25、e,deprecated,author,version等; 在方法或构造器文档注释中的有see,deprecated,param,return,throw和exception等; 在属性文档注释中的有:see,deprecated等。 为了能提取文档中的author和version等标记, 在使用javadoc工具时增加-author和-version两个选项,注意:,关于EditPlus,1配置EditPlus的用户工具 单击EditPlus的【工具】菜单【配置用户工具】,弹出“首选项” 对话框,点击其中的【组名称】按钮可对用户工具命名,然后单 击【添加工具】按钮,添加编译和运行Java程序
26、的JDK工具 javac和java。,(1)添加javac工具,单击【添加工具】按钮之后选择“程序”,然后在其对话框中的“菜单文本”项中填写“javac工具”(可随意命名);在“命令”项中填写本机javac工具的路径,如 D:Javajdk1.6binjavac.exe;在“参数”项中选择“文件名”即$(FileName);在“初始目录”项中选择“文件目录”即$(FileDir)。然后点击【应用】按钮保存,(2)添加java工具,在“菜单文本”项中填写java工具(可随意命名);在“命令”项中填写java工具在本机的具体路径如D:Javajdk1.6binjava.exe;在“参数”项中选择“
27、不带扩展名的文件名”即$(FileNameNoExt),在“初始目录”项中选择“文件目录”即$(FileDir),知识回顾:,一、JDK的安装和配置: 1、安装的路径:修改路径,不要安装在带空格的路径下,如:c:program file. 2、配置环境变量:记得放在最前段,并且用分好分割。,第一个应用程序:HelloWorld 1、书写HelloWorld类名不能包含空格,如:public class Hello World其余严格按照HelloWorld的书写规范,注意:public static void main(String args) 2、存放路径:路径不要太深,如可放在d:test下,则编译和运行的时候需要首先转到d盘的test文件夹下,命令行输入如下: d: /转到d盘下面 cd test /转到d盘下面的test文件夹下 cd java /转到d盘下面的test文件夹下的java文件夹下 cd /退出java文件夹,回到test文件夹下。 3、类名与文件名一致! 4、会查看文件存放的位置。,