大学JAVA程序设计chapter_第1页
大学JAVA程序设计chapter_第2页
大学JAVA程序设计chapter_第3页
大学JAVA程序设计chapter_第4页
大学JAVA程序设计chapter_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2021-12-12Java讲义张翔12021-12-12Java讲义张翔21.1Java语言的发展历史语言的发展历史1991年,美国年,美国Sun Microsystems公司的某个研究小公司的某个研究小组为了能够在消费电子产品上开发应用程序设计和开发出组为了能够在消费电子产品上开发应用程序设计和开发出一种语言,称之为一种语言,称之为Oak . 目的是为家用消费电目的是为家用消费电 子产品开发子产品开发一个分布式代码系统一个分布式代码系统, 可以把可以把E-mail发给电冰箱、发给电冰箱、 电视机电视机等家用电器等家用电器, 对它们进行控制对它们进行控制“有心栽花花不成,无心插柳柳成荫有心栽

2、花花不成,无心插柳柳成荫”。Sun公司绝没想到公司绝没想到本想用于消费电子产品开发的编程语言却率先在网络中得本想用于消费电子产品开发的编程语言却率先在网络中得到了广泛应用到了广泛应用.1995年,互联网在世界上蓬勃发展,年,互联网在世界上蓬勃发展,Sun公司发现公司发现Oak语言所具有的跨平台、面向对象、安全性高语言所具有的跨平台、面向对象、安全性高等特点非常符合互联网的需要等特点非常符合互联网的需要(多操作系统多操作系统),于是改进了,于是改进了该语言的设计,最终,该语言的设计,最终,Sun公司给该语言取名为公司给该语言取名为Java语言,语言,造就了一代成功的编程语言。造就了一代成功的编程

3、语言。 2021-12-12Java讲义张翔3大家想一想,在大家想一想,在PC下用下用windows编写的程序能编写的程序能够不做修改就直接拿到够不做修改就直接拿到UNIX系统上运行吗?显系统上运行吗?显然是不可以的,因为程序的执行最终必须转换成然是不可以的,因为程序的执行最终必须转换成为计算机硬件的机器指令来执行,专门为某种计为计算机硬件的机器指令来执行,专门为某种计算机硬件和操作系统编写的程序是不能够直接放算机硬件和操作系统编写的程序是不能够直接放到另外的计算机硬件上执行的,至少要做移植工到另外的计算机硬件上执行的,至少要做移植工作。要想让程序能够在不同的计算机上能够运行,作。要想让程序能

4、够在不同的计算机上能够运行,就要求程序设计语言是能够跨越各种软件和硬件就要求程序设计语言是能够跨越各种软件和硬件平台的,而平台的,而java满足了这一需求。满足了这一需求。2021-12-12Java讲义张翔4Java的主要应用领域的主要应用领域:Java+XML的电子商务解决方案的电子商务解决方案.分布式计算分布式计算:jini消费类电子产品消费类电子产品:KVM.personal java,embbeded java.交互式电视交互式电视:Java TV实时实时JAVA: real time javaPeertopeer java: JXTAJ2ee与与J2me的广泛应用的广泛应用.202

5、1-12-12Java讲义张翔5K Virtual Machine(KVM)主要是Sun所提出Java在不同能力平台下的一个解决方案,由于KVM最小只要160K bytes的记忆体就可以执行,因此称为 K Virtual Machine,其中K是表示kilo byte的意思,其中包含了128K用来执行Virtual Machine及本身所必须具备的基本Libraries。Embedded Java 与Personal Java(也有人简称为PJava)这两项规格。其中Embedded Java 是为了资源十分有限,而且没有显示设备的嵌入式装置而设计; Personal Java 则是为了在能够

6、与网际网路连线、并拥有显示系统(例如彩色LCD)的消费性电子装置而设计。2021-12-12Java讲义张翔6Java发明人发明人James Gospling2021-12-12Java讲义张翔71. 2 Java语言的特点语言的特点 简单易学简单易学:1)风格类似于)风格类似于C+, 基本语法与基本语法与C语言类似;语言类似;2)摒弃了)摒弃了C+中容易引发程序错误的地方中容易引发程序错误的地方:不再有全局变量不再有#include 和#define 等预处理功能不再有structure、union及typedef等不再有函数、不再有指针、不再有多重继承不再有goto语句不再有操作符重载(O

7、peratior Overloading)取消自动类型转换,要求强制转换自动进行内存管理3)提供了丰富的类库。)提供了丰富的类库。2021-12-12Java讲义张翔8面向对象面向对象:支持静态和动态风格的代码继承及重用,是完:支持静态和动态风格的代码继承及重用,是完全全 面向对象的面向对象的, 它不支持类似它不支持类似C语言那样的面向过程语言那样的面向过程 的的程序设计技术。程序设计技术。解释执行解释执行:Java解释器解释器(运行系统运行系统)能直接运行目标代码能直接运行目标代码指令。指令。平台无关平台无关:Java源程序被编译成一种高层次的与机器无源程序被编译成一种高层次的与机器无关的关

8、的 byte-code格式语言格式语言, 被设计在被设计在Java虚拟机上运虚拟机上运行。行。性能优异性能优异:Java可以在运行时直接将目标代码翻译成机可以在运行时直接将目标代码翻译成机器指令,器指令, Sun用直接解释器一秒钟内可调用用直接解释器一秒钟内可调用300,000个过程,个过程, 翻译目标代码的速度与翻译目标代码的速度与C/C+的性能没什么的性能没什么区别。区别。 分布式分布式:Java包括一个支持包括一个支持HTTP和和FTP等基于等基于TCP/IP协议的子库。因此协议的子库。因此, Java应用程序可凭借应用程序可凭借URL打开并访问网络上的对象打开并访问网络上的对象, 其访

9、问方式与访问本地文件系其访问方式与访问本地文件系统几乎完全相同。统几乎完全相同。2021-12-12Java讲义张翔9可移植可移植:Java应用程序可以在配备了应用程序可以在配备了Java解释器和运行环解释器和运行环境的任何计算机境的任何计算机 系统上运行系统上运行, 通过定义独立于平台的基本数通过定义独立于平台的基本数据类型及其运算据类型及其运算, Java数据得以在任何硬件平台上保持一致。数据得以在任何硬件平台上保持一致。多线程多线程:Java提供的多线程功能使得在一个程序里可同时执提供的多线程功能使得在一个程序里可同时执行多个小任务。行多个小任务。 多线程带来的好处是可以有更好的多线程带

10、来的好处是可以有更好的 交互性交互性能和实时控制性能。能和实时控制性能。健壮健壮:Java致力于检查程序在编译和运行时的错误。致力于检查程序在编译和运行时的错误。 类型检查帮助检查出许多开发早期出现的错误。类型检查帮助检查出许多开发早期出现的错误。 Java自已操纵内存减少了内存出错的可能性。自已操纵内存减少了内存出错的可能性。Java还实现了真数组还实现了真数组, 避免了覆盖数据的可能。避免了覆盖数据的可能。安全安全:Java的安全性可从两个方面得到保证。一方面的安全性可从两个方面得到保证。一方面, 在在Java语言里语言里, 象指针和释放内存等象指针和释放内存等C+功能被删除功能被删除,

11、避免避免了非法内存操作。了非法内存操作。 另一方面另一方面, 当当Java用来创建浏览器时用来创建浏览器时, 语语言功能和一些浏览器本身提供的功能结合起来言功能和一些浏览器本身提供的功能结合起来, 使它更安全。使它更安全。动态动态:Java的动态特性是其面向对象设计方法的拓展,的动态特性是其面向对象设计方法的拓展, 它它允许程序动态地装入运行过程中所需要的类。允许程序动态地装入运行过程中所需要的类。2021-12-12Java讲义张翔101.3 Java的运行机制的运行机制1 java虚拟机虚拟机java虚拟机是软件模拟的计算机,可以在任何处理器上虚拟机是软件模拟的计算机,可以在任何处理器上(

12、无论是在计算机中还是在其它电子设备中)安全并且兼(无论是在计算机中还是在其它电子设备中)安全并且兼容的执行保存在容的执行保存在.class文件中的字节码。文件中的字节码。 java虚拟机的虚拟机的“机器码机器码”保存在保存在.class文件中,有时也可文件中,有时也可以称之为字节码文件。以称之为字节码文件。java程序的跨平台主要是指字节程序的跨平台主要是指字节码文件可以在任何具有码文件可以在任何具有java虚拟机的计算机或者电子设虚拟机的计算机或者电子设备上运行,备上运行,java虚拟机中的虚拟机中的java解释器负责将字节码文解释器负责将字节码文件解释成为特定的机器码进行运行。件解释成为特

13、定的机器码进行运行。java源程序需要通源程序需要通过编译器编译成为过编译器编译成为.class文件(字节码文件),文件(字节码文件),java程程序的编译和执行过程如图所示。序的编译和执行过程如图所示。2021-12-12Java讲义张翔112021-12-12Java讲义张翔12java虚拟机的建立需要针对不同的软硬件平台做专门的实现,既虚拟机的建立需要针对不同的软硬件平台做专门的实现,既要考虑处理器的型号,也要考虑操作系统的种类。如下图所示,要考虑处理器的型号,也要考虑操作系统的种类。如下图所示,目前在目前在SPARC结构、结构、X86结构、结构、MIPS和和PPC等嵌入式处理芯等嵌入式

14、处理芯片上、在片上、在UNIX、Linux、windows和部分实时操作系统上都和部分实时操作系统上都有有java虚拟机的实现虚拟机的实现。2021-12-12Java讲义张翔131.4 Java1.4 Java运行平台运行平台1.J2EE Java2 Enterprise Edition1.J2EE Java2 Enterprise Edition企业计算企业计算是标准版的企业级扩充是标准版的企业级扩充2.J2SE Java2 Standard Edition 2.J2SE Java2 Standard Edition 桌面计算桌面计算Java的标准与核心平台,面向个人用户的标准与核心平台,

15、面向个人用户3.J2ME Java2 Micro Edition 3.J2ME Java2 Micro Edition 嵌入计算嵌入计算面向嵌入式系统应用面向嵌入式系统应用2021-12-12Java讲义张翔142021-12-12Java讲义张翔151.4.2 java应用程序接口(应用程序接口(JavaAPI)Java.lang:包含形成语言核心的类,包含形成语言核心的类,Java.lang.ref:提供对无用内存回收功能支持的类提供对无用内存回收功能支持的类Java.lang.reflect:提供程序加载时候的动态类型检测功提供程序加载时候的动态类型检测功能能Java.awt:用来构建和

16、管理程序的图形用户界面用来构建和管理程序的图形用户界面Java.applet:提供执行提供执行Applet程序特殊行为的类程序特殊行为的类J:提供与网络应用相关的类和接口提供与网络应用相关的类和接口Java.io: 提供处理输入输出文件的类提供处理输入输出文件的类Java.util:提供为应用任务设置的实用程序类和集合提供为应用任务设置的实用程序类和集合框架集框架集2021-12-12Java讲义张翔161)java.lang 本类包中包含了各种定义java语言时必须的类,这些类能够以其他类不能使用的方式访问java的内部。任何java程序都将自动引入这个包。其中的类包括: Object类:j

17、ava中最原始、最重要的类,每个java类都是它的子类,它实现了每个类都必须具有的基本方法。 基本类型包装器:Boolean, Character, Number, Double, Float, Integer, Long。 String类:字符串类。 Math类:数学函数的集合。 执行线程:类Thread, ThreadGroup, 接口Runable。 异常和错误:类Exception, Error, 接口Throwable。2021-12-12Java讲义张翔17(1)java.lang 运行环境:可以通过类Runtime和System访问外部系统环境。System类的两个常用功能就是访

18、问标准输入/输出流和错误流、退出程序。 其他类:接口Cloneable、运行时的类等。(2)java.applet Java Applet是Java编程的一个主要魅力,java.applet类包提供了Applet的运行机制以及一些编写Applet非常有用的方法。2021-12-12Java讲义张翔18(3) java.awt 本类包是各种窗口环境的统一界面(AWT代表Abstract Windows Toolkit,即抽象窗口工具包),其中的类使得创建诸如窗口、菜单、滚动条、文本区、按钮以及复选框等图形用户界面(GUI)的元素变得非常容易。(4) java.awt.image 类包能够以独立于

19、设备的方式加载并过滤位图图象。(5) java.awt.peer java.awt.peer是全部awt组件的对等对象接口的集合,每个接口都提供了机器相关基本的方法,awt使用这些方法来实现GUI,而不必关心是何种机器或操作系统。2021-12-12Java讲义张翔19(6) java.io Java的输入/输出模式是完全建立在流的基础之上的。流是一种字节从一个地方到另一个地方的单向流动,可以把流附加于文件、管道和通信链路等。 java.io类包中定义的许多种流类通过继承的方式进行组织,其中也包括一些用来访问本地文件系统上的文件的流类。(7) 类包用来完成与网络相关的功能:URL、WWW连接以

20、及更为通用的Socket网络通信。(8) java.util java.util类包包含了一些实用类和有用的数据结构,如字典(Dictionary)、散列表(Hashtable)、堆栈(Stack)、向量(Vectro)以及枚举类(Enumeration)等。2021-12-12Java讲义张翔20(6) java.io Java的输入/输出模式是完全建立在流的基础之上的。流是一种字节从一个地方到另一个地方的单向流动,可以把流附加于文件、管道和通信链路等。 java.io类包中定义的许多种流类通过继承的方式进行组织,其中也包括一些用来访问本地文件系统上的文件的流类。(7) 类包用来完成与网络相

21、关的功能:URL、WWW连接以及更为通用的Socket网络通信。(8) java.util java.util类包包含了一些实用类和有用的数据结构,如字典(Dictionary)、散列表(Hashtable)、堆栈(Stack)、向量(Vectro)以及枚举类(Enumeration)等。2021-12-12Java讲义张翔21J2sdk的安装与组成的安装与组成安装安装组成组成2021-12-12Java讲义张翔22安装安装JDK后产生如下目录结构:后产生如下目录结构: bin目录:Java开发工具,包括Java编译器、解释器等 demo目录:一些实例程序 lib目录:Java开发类库 jre目录: Java运行环境,包括Java虚拟机、运行类库等由于由于JDK的安装程序中并不包含帮助文档,因此也必须从的安装程序中并不包含帮助文档,因此也必须从Sun的网站上下载进行安装。通常安装在的网站上下载进行安装。通常安装在JDK所在目录的所在目录的docs子目录下面。用浏览器打开子目录下面。用浏览器打开docs子目录下的子目录下的index.html文件就可以阅读所有的帮助文档。文件就可以阅读所有的帮助文档。 2021-12-12Java讲义张翔232021-12-12Java讲义张翔24Java开发工具包括:开发工具包括: Javac:Java编

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论