Java运行环境和开发工具.ppt
Java高级程序设计高级程序设计教学参考书教学参考书n nJavaJava程序程序设计设计教程(第教程(第5 5版)版),H.M.DeitelH.M.Deitel著,清著,清华大学出版社,华大学出版社,2002004.34.3。n nJavaJava编编程思想(第程思想(第4 4版),版),Bruce Bruce EckelEckel著,机械工著,机械工业业出版社,出版社,2007.62007.6。n nJavaJava核心技术(第核心技术(第7 7版),版),Cay Cay S.HorstmannS.Horstmann著,著,机械工业出版社,机械工业出版社,2006.52006.5。美国Sun Microsystems公司的某个研究小组为了能够在消费电子产品上开发应用程序,积极寻找合适的编程语言。1992年底,java最初的原型Oak语言产生了。随着互联网的蓬勃发展,Sun公司发现Oak语言所具有的跨平台、面向对象、安全性高等特点非常符合互联网的需要,于是改进了该语言的设计。1995年1月,Oak被正式更名为Java。1995年5月23日,Java正式发布。19911995Java的发展历程的发展历程J2SE(Java 2 Standard Edition)J2EE(Java 2 Enterprise Edition)J2ME(Java 2 Micro Edition)标准版标准版 适用于开发用户端程序适用于开发用户端程序企业版企业版 适用于开发服务器端程序适用于开发服务器端程序手持设备版手持设备版 适用于开发手机、无线设备程序适用于开发手机、无线设备程序1996年初,Java的第一个版本Java 1.0版正式发布了,同时,还发布JDK1.0(Java开发工具包);几个月后,又发布了Java 1.02版。1998年底,具有很多标准库的Java1.2(后更名为Java 2)也已正式发布了。目前,基于Java2平台已经发展了几个版本系列:J2SE、J2EE和J2ME。相关概念相关概念n n老师,什么是老师,什么是老师,什么是老师,什么是JDKJDK啊?啊?啊?啊?即即Java Develop Java Develop KitKit,JavaJava开发工具包,是开发工具包,是 SUNSUN公司提供的一套公司提供的一套JavaJava开发开发环境环境,。它主要包括了一些常用的。它主要包括了一些常用的JDKJDK工具、执行时需要的函数库、与工具、执行时需要的函数库、与C C连接时所需的文件及一些连接时所需的文件及一些JavaJava应用程序范例等。应用程序范例等。n n老师,我们讲的是老师,我们讲的是老师,我们讲的是老师,我们讲的是Java1Java1还是还是还是还是Java2Java2?19981998年年1212月,月,SUNSUN公司发布了公司发布了JDK1.2JDK1.2,开始使用开始使用“Java 2”Java 2”这一名称,目这一名称,目前我们已经很少使用前我们已经很少使用JDK1.1JDK1.1版本,所以我们所说的版本,所以我们所说的JavaJava都是指都是指Java2Java2。J2SDKJ2SDK当然就是当然就是Java 2 Software Develop KitJava 2 Software Develop Kit。n n老师,什么是老师,什么是老师,什么是老师,什么是JREJRE?JREJRE(JavaJava Runtime Environment Runtime Environment),),即即JavaJava运行环境,通常已包含在运行环境,通常已包含在J2SDKJ2SDK中了。如果我们仅仅是为了运行中了。如果我们仅仅是为了运行JavaJava程序,而不是从事程序,而不是从事JavaJava开发,开发,我们可以直接下载我们可以直接下载JREJRE,在我们的系统上安装。在我们的系统上安装。J2SE 相关下载相关下载n nJava Platform SE 6http:/ nJava SE 6 Documentationhttp:/ nJava Tutorialhttp:/ n简单的简单的简单的简单的 JavaJava最初是为对家用电器进行集成控制而设计的一种最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了。语言,因此它必须简单明了。JavaJava语言的简单性主要体现语言的简单性主要体现在三个方面:在三个方面:1 1、JavaJava的风格类似于的风格类似于C+C+,因而,因而C+C+程序员初次接触程序员初次接触JavaJava语言,就会感到很熟悉。从某种意义上讲,语言,就会感到很熟悉。从某种意义上讲,JavaJava语言语言是是C C及及C+C+语言的一个变种,因此,语言的一个变种,因此,C+C+程序员可以很快地程序员可以很快地掌握掌握JavaJava编程技术。编程技术。2 2、JavaJava摒弃了摒弃了C+C+中容易引发程序错误的一些特性,中容易引发程序错误的一些特性,如指针、结构、枚举以及内存管理等。如指针、结构、枚举以及内存管理等。3 3、JavaJava提供了丰富的类库,可以帮助我们很方便的提供了丰富的类库,可以帮助我们很方便的开发开发JavaJava程序。程序。我们为什么要用我们为什么要用Javan n面向对象的面向对象的 面向对象可以说是Java最重要的特性,所以它支持继承、重载、多态等面向对象的特性。Java语言的设计是完全面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。我们为什么要用我们为什么要用Javan n分布式的分布式的 Java有一个扩展的例程库,用于处理像HTTP和FTP这类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象,其便利程序如同访问本地文件系统一样(远程方法调用机制)。现在有一种独立的体系结构,Java2企业版,支持大规模的分布式应用。我们为什么要用我们为什么要用Javan n健壮的健壮的 Java致力于检查程序在编译和运行时运行时的错误。Java也是一种强类型的语言,其类型检查比C+还要严格。类型检查帮助我们检查出许多开发早期出现的错误。Java自己负责内存管理,提供了垃圾内存回收机制,有效的避免了C+中最头疼的内存泄漏问题。我们为什么要用我们为什么要用Javan n安全的安全的安全的安全的 JavaJava的安全性可从两个方面得到保证。一方的安全性可从两个方面得到保证。一方 面,在面,在JavaJava语言里,删除了指针和释放内存等语言里,删除了指针和释放内存等C+C+功能,避免了非法内存操作。另一方面,通过功能,避免了非法内存操作。另一方面,通过JavaJava的安全体系架构来确保的安全体系架构来确保JavaJava代码的安全性。当代码的安全性。当我们从网上下载我们从网上下载JavaJava代码在本地执行时,代码在本地执行时,JavaJava的安的安全架构能确保恶意的代码不能随意访问我们本地全架构能确保恶意的代码不能随意访问我们本地计算机的资源,例如:删除文件,访问本地网络计算机的资源,例如:删除文件,访问本地网络资源等操作都是被禁止的。资源等操作都是被禁止的。使用使用javajava可以构建防病毒、防篡改系统。可以构建防病毒、防篡改系统。我们为什么要用我们为什么要用Javan n解释的解释的 JavaJava代码是解释执行的,我们使用代码是解释执行的,我们使用JavaJava编译器编译器将将JavaJava代码编译成字节码,这是一种中间代码,然代码编译成字节码,这是一种中间代码,然后由后由JavaJava解释器解释执行。而解释器解释执行。而C+C+程序是编译执行程序是编译执行的,的,C+C+程序代码被编译为本地机器指令,然后执程序代码被编译为本地机器指令,然后执行。行。我们为什么要用我们为什么要用Javan n可移值性(与平台无关的)可移值性(与平台无关的)可移值性(与平台无关的)可移值性(与平台无关的)JavaJava作为一种网络语言,其源代码被编译成一种结构中作为一种网络语言,其源代码被编译成一种结构中立的中间文件格式。只要有立的中间文件格式。只要有JavaJava运行系统的机器都能执行这运行系统的机器都能执行这种中间代码。种中间代码。JavaJava源程序被编译成一种与机器无关的字节码源程序被编译成一种与机器无关的字节码格式,在格式,在JavaJava虚拟机上运行。虚拟机上运行。PCUNIXMacJava 程序程序CompileJavaByte CodeJava VMFor PCJava VMFor UNIXJava VMFor MacJava 的承的承诺诺:Write Once,Run Anywhere(WORA)我们为什么要用我们为什么要用Javan n多线程的多线程的多线程的多线程的 JavaJava语言的一个重要特性就是在语言级支持语言的一个重要特性就是在语言级支持多线程的程序设计。多线程就好像我们做一张桌多线程的程序设计。多线程就好像我们做一张桌子,如果你一个人完成这张桌子子,如果你一个人完成这张桌子就好像单线程,就好像单线程,那么你需要先做桌面,做完桌面后,再做那么你需要先做桌面,做完桌面后,再做4 4个桌子个桌子腿,如果现在有腿,如果现在有5 5个人来做桌子个人来做桌子在程序中开辟在程序中开辟5 5个线程,其中个线程,其中1 1个人做桌面,另外个人做桌面,另外4 4个人分别做个人分别做4 4个个桌子腿,那么这两种方式效率的高低,相信大家桌子腿,那么这两种方式效率的高低,相信大家都能区分出来。都能区分出来。我们为什么要用我们为什么要用Javan n动态的动态的 JavaJava语言的动态性,即可以在本地或网上动态地语言的动态性,即可以在本地或网上动态地加载类,或者说在程序的执行过程中可以随意地增加新方加载类,或者说在程序的执行过程中可以随意地增加新方法、实例变量等。法、实例变量等。JavaJava的动态特性的动态特性C+C+语言更强。语言更强。其他语言其他语言程序开始执行后所有的类一起加入,程序开始执行后所有的类一起加入,一旦开始执行,就无法做出任何变更。一旦开始执行,就无法做出任何变更。JavaJava语言语言当需要某个类时才将其加载当需要某个类时才将其加载。我们为什么要用我们为什么要用Javan n体系结构中立的体系结构中立的编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,只要有Java运行时系统,就可以在许多处理器上运行。Java源程序源程序(.java文件文件)Java编译器编译器Java Bytecode(.class文件文件)Bytecode 载入器载入器Bytecode 解释器解释器系统执行平台系统执行平台语言定义语言定义publicprotectedprivatefinal取消指针取消指针自动回收垃圾自动回收垃圾Byte code检查检查限定对象的存取权限限定对象的存取权限系统堆栈溢出系统堆栈溢出参数类型一致参数类型一致程序执行系统程序执行系统WWW浏览器浏览器限制限制Java小应用程序小应用程序的不正当使用的不正当使用Java应用程序的开发周期应用程序的开发周期Java跨平台的原理跨平台的原理 Java的跨平台是通过的跨平台是通过Java虚拟机(虚拟机(JVM)来来实现的。实现的。Java跨平台的原理跨平台的原理 Java跨平台的原理跨平台的原理n nJava字节码的两种执行方式字节码的两种执行方式 1 1、即时编译方式即时编译方式:解释器先将字节码编译成机器:解释器先将字节码编译成机器码,然后再执行该机器码。码,然后再执行该机器码。2 2、解释执行方式解释执行方式:解释器通过每次解释并执行一:解释器通过每次解释并执行一小段代码来完成小段代码来完成JavaJava字节码程序的所有操作。字节码程序的所有操作。通常采用的是第二种方法。由于通常采用的是第二种方法。由于JVMJVM规格描规格描述具有足够的灵活性,这使得将字节码翻译为机述具有足够的灵活性,这使得将字节码翻译为机器代码的工作具有较高的效率。对于那些对运行器代码的工作具有较高的效率。对于那些对运行速度要求较高的应用程序,解释器可将速度要求较高的应用程序,解释器可将JavaJava字节码字节码即时编译为机器码,从而很好地保证了即时编译为机器码,从而很好地保证了JavaJava代码的代码的可移植性和高性能。可移植性和高性能。Java跨平台的原理跨平台的原理n nJavaJava程序执行与程序执行与程序执行与程序执行与C/C+C/C+程序执行的对比分析程序执行的对比分析程序执行的对比分析程序执行的对比分析 JavaJava源程序源程序想象成我们的想象成我们的C+C+源程序;源程序;JavaJava源程序编译后生成的字节码源程序编译后生成的字节码就相当于就相当于C+C+源程源程序编译后的序编译后的80 x8680 x86的机器码(二进制程序文件);的机器码(二进制程序文件);JVMJVM虚拟机虚拟机相当于相当于80 x8680 x86计算机系统(操作系统);计算机系统(操作系统);JavaJava解释器解释器相当于相当于80 x86CPU80 x86CPU。在在80 x86CPU80 x86CPU上运行的是机器码,在上运行的是机器码,在JavaJava解释器上解释器上运行的是运行的是JavaJava字节码。字节码。JDK的安装与配置的安装与配置JDK的安装与配置的安装与配置Java开发工具包开发工具包Java开发工具包开发工具包Application程序的编写与运行程序的编写与运行Java程序规范程序规范 源文件的命名规则源文件的命名规则 如果在源程序中包含有公共类的定义,则该源文件名必须与该公共类的名字完全一致,字母的大小写都必须一样。如果源程序中不包含公共类的定义,则该文件名可以任意取名。如果在一个源程序中有多个类定义,则在编译时将为每个类生成一个.class文件。【例例】一个一个java源程序可以是如下结构,该源程序命名为源程序可以是如下结构,该源程序命名为HelloWorldApp.java package javawork.helloworld;import java.awt.*;import javawork.newcentury;public class HelloWorldApp.class TheFirstClass.class TheSecondClass.interface TheFirstInterface.Java程序规范程序规范 Java程序规范程序规范 java的注释的注释单单单单行注行注行注行注释释释释:从“/”开始到本行结束的内容都是注释 多行注多行注多行注多行注释释释释:在“/*”和“*/”之间的所有内容都是注释文档注文档注文档注文档注释释释释:在注释方面java提供一种C/C+所不具有的文档注释方式。其核心思想是当程序员编完程序以后,可以通过JDK提供的javadoc命令,生成所编程序的API文档,而该文档中的内容主要就是从文档注释中提取的。该API文档以HTML文件的形式出现,与java帮助文档的风格与形式完全一致。凡是在“/*”和“*/”之间的内容都是文档注释Applet程序的编写与运行程序的编写与运行Applet程序的编写与运行程序的编写与运行Java Applet的下载执行过程的下载执行过程HTML文件文件_Applet嵌入标记嵌入标记 Applet名名_WWW服务器服务器WWW服务器服务器WWW浏览器浏览器下载下载HTML文件文件请求请求HTML文件文件请求请求Applet字节字节下载下载Applet字节码字节码解释执行解释执行Applet字节码字节码Java源文件编辑环境的选择源文件编辑环境的选择 Borland 最受欢迎之最受欢迎之Java开发商业软件开发商业软件 IBM最受欢迎之最受欢迎之Open Source Java 开发软件开发软件 Sun Java官方官方IDEEclipse介绍介绍Eclipse介绍介绍(1 1)创建一个)创建一个)创建一个)创建一个JavaJava项目项目项目项目n n启动启动EclipseEclipse,选择,选择“windows”-“Open windows”-“Open Perspective”-“Java”,Perspective”-“Java”,打打开开JavaJava视景和视景和JDTJDT。n n选择选择“FileFile”-“New”-“New”-“Project”“Project”,选择,选择“Java”Java”和和“Java Project”Java Project”,点击,点击“Next”Next”,在,在“Project Project Name”Name”中输入新项目的中输入新项目的名称名称“ch02-01ch02-01”,点击,点击“Next”Next”,在新窗口中点,在新窗口中点击击“Finish”Finish”,就创建了一,就创建了一个新项目个新项目ch02-01ch02-01。使用使用Eclipse(2 2)创建一个)创建一个)创建一个)创建一个JavaJava类类类类n n选用工具栏上的图标选用工具栏上的图标 或或选择选择“File”-“New”-File”-“New”-“Class”“Class”或在或在“Package Package ExploerExploer”中选中项目按鼠标中选中项目按鼠标右键选择右键选择“New”-“Class”New”-“Class”,打开右图窗口。打开右图窗口。n n可以设定类的访问修饰符可以设定类的访问修饰符(Modifier)(Modifier),此类放在哪个包,此类放在哪个包中中(Package)(Package),父类,父类(SuperclassSuperclass),此类是否实现,此类是否实现某个界面某个界面(Interfaces),(Interfaces),类名类名(Name)(Name)等,然后按等,然后按“Finish”Finish”完成类完成类“HelloWorldHelloWorld”的创建。的创建。使用使用Eclipse(3 3)使用程序代码助理)使用程序代码助理)使用程序代码助理)使用程序代码助理Code AssistCode Assist使用使用Eclipse(4 4)运行程序)运行程序)运行程序)运行程序n n选择选择“Run”-Run”-“Run As”-“Java“Run As”-“Java Application”Application”,就,就可运行程序观看可运行程序观看结果。此例的运结果。此例的运行结果显示在行结果显示在“Console”Console”视图中。视图中。使用使用Eclipse(5 5)使用快速修正)使用快速修正)使用快速修正)使用快速修正n n输入如图所示代输入如图所示代码,码,EclipseEclipse除了除了显示错误外还可显示错误外还可以建议解决办法。以建议解决办法。程序左边的程序左边的 称称“marker barmarker bar,右边的右边的 称称“overview ruler”overview ruler”。n n点击出错那行的点击出错那行的灯泡图标,可显灯泡图标,可显示修正的意见和示修正的意见和相应的修改建议。相应的修改建议。使用使用Eclipse(6 6)简单项目管理)简单项目管理)简单项目管理)简单项目管理删除一个项目删除一个项目删除一个项目删除一个项目 选中这个项目,按鼠标右键,选中这个项目,按鼠标右键,选择选择“Delete”Delete”,再选,再选“Do not Do not delete contents”delete contents”,可以使该项,可以使该项目从视图中消失。目从视图中消失。l添加一个项目添加一个项目 在“Package Explorer”或“Navigator”视图中按鼠标右键,选“import”;或选“File”-“import”,从已存在的项目中选择一个添加。使用使用Eclipse使用使用MyEclipse下载地址:http:/ 使用使用MyEclipse安装: