资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Institute of Computer Software,Nanjing University,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Institute of Computer Software,Nanjing University,*,Java,语言程序设计,曹迎春,Java语言程序设计曹迎春,第一章 概论,2024/11/15,2,第一章 概论2023/10/82,学习目标,了解java语言产生的历史和工作原理,掌握java语言作为一门面向对象编程语言的基本编程思路,掌握java程序的结构、编程规范,学习阅读java帮助文档,安装java开发环境和帮助文档,学会编写小的java程序并生成相应的帮助文档。,2024/11/15,3,学习目标了解java语言产生的历史和工作原理2023/10/,学习指南,跳过面向过程的编程思路,直接进入到面向对象的编程方式,2024/11/15,4,学习指南跳过面向过程的编程思路2023/10/84,难点和重点,java虚拟机,无用内存自动回收器,java语言的特点,面向对象的编程思路,java编程规范,java类库帮助文档的浏览和生成,2024/11/15,5,难点和重点java虚拟机2023/10/85,课前思考,一门新的语言的产生是否需要借鉴以前的编程语言?,在,java,语言出现之前是否存在其它跨平台的语言?,有哪些编程语言是面向对象的?而哪些编程语言是面向过程的?从编程思路上存在着哪些本质差别?,C+,语言是面向对象的还是面向过程的?,一段优秀的程序代码是否应该是可读性极强的?程序员之间是否应该遵循相同的编程规范?,一个程序员编好的代码如果需要让别的程序员使用,如何提供该代码的使用说明?,2024/11/15,6,课前思考一门新的语言的产生是否需要借鉴以前的编程语言?202,Java语言的产生,1991年,SUN公司为消费电子产品开发一个名为oak的软件,在安全性和可移植性方面有所增强。,2024/11/15,7,Java语言的产生1991年,SUN公司为消费电子产品开发一,关于OaK语言,OAK,是,Sun,公司,1991,年开发的一种称为机顶盒语言。,命令可以迅速的从有线电视公司传到用户的机顶盒上,反之亦然;(小巧),可以应用于不同的有线电视公司;(便携),2024/11/15,8,关于OaK语言OAK是Sun公司1991年开发的一种称为机顶,Java语言的产生,1994年下半年,Internet发展迅猛,SUN把oak的技术应用于网络,命名为Java。,1995年,SUN正式发布Java语言,Microsoft,IBM,NETSCAPE,NOVELL APPLE,DEC,SGI等公司纷纷购买Java语言的使用权。,1996年,SUN公司专门成立Javasoft分公司来发展Java。,2024/11/15,9,Java语言的产生1994年下半年,Internet发展迅猛,Java的最新发展动态,Java,XML,为电子商务提供解决方案,分布式计算:,Jini,向消费电子领域进军:,KVM,,,Personal Java,,,Embbeded Java,交互式电视:,JavaTV,实时,Java,:,Real Time Java,Peer2peer,:,JXTA,J2EE,和,J2ME,的广泛应用,2024/11/15,10,Java的最新发展动态JavaXML为电子商务提供解决方案,Java的设计目标,创建一种面向对象的程序设计语言,而不是面向过程的语言;,提供一个解释执行的程序运行环境,使程序代码独立于平台;,吸收,C,和,C,的优点,使程序员容易掌握;,去掉,C,和,C,中影响程序健壮性的部分,使程序更安全,例如指针、内存申请和释放;,实现多线程,使得程序能够同时执行多个任务;,提供动态下载程序代码的机制;,提供代码校验机制以保证安全性;,2024/11/15,11,Java的设计目标创建一种面向对象的程序设计语言,而不是面向,Java语言的特点,简单,面向对象,分布式,健壮,结构中立,安全,可移植,可解释的,高性能,2024/11/15,12,Java语言的特点简单2023/10/812,三个实现机制,Java虚拟机(Java Virtual Machine),无用内存收集机制(Garbage Collection),代码安全性检测(Code Security),2024/11/15,13,三个实现机制Java虚拟机(Java Virtual Mac,Java虚拟机,在一台计算机上由软件模拟的假想的计算机。Java虚拟机的代码存储在class文件中(也称为字节码文件)。,Java编译器针对Java虚拟机产生class文件,因此是独立于平台的。,Java解释器负责将Java虚拟机的代码在特定的平台上运行。,2024/11/15,14,Java虚拟机在一台计算机上由软件模拟的假想的计算机。Jav,Java虚拟机,2024/11/15,15,任何一个编译器,不是,JVM,的内容。,Java虚拟机2023/10/815任何一个编译器,不是JV,JVM执行步骤,Step1,:编辑源代码,Step2,:,JAVA,编译器将其编译为,class,文件(,JVM,规范的字节码),Step3,:,JAVA,解释器负责将,class,文件解释运行(解释器有两个功能:执行字节码、对底层硬件平台做适合调用),加载代码:由,class loader,完成,校验代码:由,bytecode verifier,完成,执行代码:由,runtime,interpreter,完成,2024/11/15,16,JVM执行步骤Step1:编辑源代码2023/10/816,Java虚拟机的建立,Java虚拟机的建立需要针对不同的软硬件平台做专门的实现。,2024/11/15,17,Java虚拟机的建立Java虚拟机的建立需要针对不同的软硬件,无用内存自动回收机制,2024/11/15,18,无用内存自动回收机制2023/10/818,代码安全性检查机制,检验类文件是否符合类文件规范,检查类文件中的代码是否存在非法操作,VTM采用“沙箱”运行模式将代码和数据都限制在一定内存空间里执行,不允许程序访问该内存空间外的内存。,2024/11/15,19,代码安全性检查机制检验类文件是否符合类文件规范2023/10,Java,平台不断扩展的计算平台,企业计算:Java 2 Enterprise Edition J2EE,桌面计算:Java 2 Standard Edition J2SE,嵌入计算:Java 2 Micro Edition J2ME,2024/11/15,20,Java平台不断扩展的计算平台企业计算:Java 2 En,Java,平台不断扩展的计算平台,2024/11/15,21,Java平台不断扩展的计算平台2023/10/821,建立Java开发环境,安装,Java Develop Kit,(,JDK,),浏览,http:/ Develop Kit(J,2024/11/15,23,2023/10/823,环境变量的配置,右击“我的电脑”打开快捷菜单,选择“属性”命令,打开“系统特性”对话框。,选择“高级”选项卡,单击“环境变量”按钮,将会弹出对话框。,单击“,的用户变量”选项组下的“新建”按钮,打开“新建用户变量”对话框。,在“变量名”文本框中输入,JAVA_HOME,,在“变量值”文本框中输入,E:Java,。假设,JDK,的安装路径为,E:Java,。,在“变量名”文本框中输入,PATH,,在“变量值”文本框中输入,E:Javabin,。,2024/11/15,24,环境变量的配置右击“我的电脑”打开快捷菜单,选择“属性”命令,验证jdk安装情况,在命令行方式下分别输入命令:,javac,java,2024/11/15,25,验证jdk安装情况在命令行方式下分别输入命令:2023/10,构建java程序,2024/11/15,26,构建java程序2023/10/826,编译和运行java程序,2024/11/15,27,编译和运行java程序2023/10/827,Java源程序结构,package,语句,/0,或,1,条,必须放在文件开始,import,语句,/0,或多条,必须放在所有类定义之前,public classDefinition,/0,或,1,个。文件名必须与该类的类名完全相同,classDefinition,/,类定义,个数不限,interfaceDefinition,/,接口定义,个数不限,2024/11/15,28,Java源程序结构package语句 2023/10/82,Java程序结构示例,package javawork.helloworld;,/*,把编译生成的所有,.class,文件放到包,javawork.helloworld,中,*,/,import java.awt.*;,/,告诉编译器本程序中用到系统的,AWT,包,import javawork.newcentury;,/*,告诉编译器本程序中用到用户自定义,的包,javawork.newcentury*/,public class HelloWorldApp.,/*,公共类,HelloWorldApp,的定义,,名字与文件名相同,*,/,class TheFirstClass.,/,第一个普通类,TheFirstClass,的定义,class TheSecondClass.,/,第二个普通类,TheSecondClass,的定义,.,/,其它普通类的定义,interface TheFirstInterface.,/,第一个接口,TheFirstInterface,的定义,.,/,其它接口定义,2024/11/15,29,Java程序结构示例package javawork.hel,package语句,包(,package,),用于管理生成的,java,字节码文件(,.class,),其对应于文件系统中的目录,目的是把编译生成的,.class,文件放入该目录。例如:,javawork.helloworld,对应于目录“,pathjavaworkhelloworld,,其中,path,需在编译时指定,且该目录须存在;,如果,javaworkhelloworld,不存在则创建该目录。例如:,javac-d f:javaproject HelloWorldApp.java,则生成的,HelloWorldApp.class,文件将放在目录,f:javaprojectjavaworkhelloworld,中,如果程序中没有,package,语句,或者有,package,语句但是在编译时不用,-d,选项,则生成的,.class,文件放入当前目录。,2024/11/15,30,package语句包(package)2023/10/830,Import语句,import,语句,在程序中用到了标准类库或自定义包中的类,需要用,import,来声明。,可以声明一个包:,import java.awt.*,在引用到类或者包时,将沿着类路径,classpath,开始寻找相应的,.class,文件,因此需要事先设置环境变量,classpath,:,classpath=.,;,e:javalib,2024/11/15,31,Import语句import语句2023/10/831,Java程序结构,源文件的命名规则,如果,.java,文件包含一个,public,类,它必须按该类名命名。,一个源文件中最多只能有一个,public,类,其他类的个数不限。,2024/11/15,32,Java程序结构源文件的命名规则2023/10/832,Java编程规范,包名,全小写,一般为名词,
展开阅读全文