大学JAVA程序设计chapter01

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2020/1/3Java讲义张翔1第一章Java概述2020/1/3Java讲义张翔21.1Java语言的发展历史1991年,美国SunMicrosystems公司的某个研究小组为了能够在消费电子产品上开发应用程序设计和开发出一种语言,称之为Oak.目的是为家用消费电子产品开发一个分布式代码系统,可以把E-mail发给电冰箱、电视机等家用电器,对它们进行控制“有心栽花花不成,无心插柳柳成荫”。Sun公司绝没想到本想用于消费电子产品开发的编程语言却率先在网络中得到了广泛应用.1995年,互联网在世界上蓬勃发展,Sun公司发现Oak语言所具有的跨平台、面向对象、安全性高等特点非常符合互联网的需要(多操作系统),于是改进了该语言的设计,最终,Sun公司给该语言取名为Java语言,造就了一代成功的编程语言。2020/1/3Java讲义张翔3大家想一想,在PC下用windows编写的程序能够不做修改就直接拿到UNIX系统上运行吗?显然是不可以的,因为程序的执行最终必须转换成为计算机硬件的机器指令来执行,专门为某种计算机硬件和操作系统编写的程序是不能够直接放到另外的计算机硬件上执行的,至少要做移植工作。要想让程序能够在不同的计算机上能够运行,就要求程序设计语言是能够跨越各种软件和硬件平台的,而java满足了这一需求。2020/1/3Java讲义张翔4Java的主要应用领域:Java+XML的电子商务解决方案.分布式计算:jini消费类电子产品:KVM.personaljava,embbededjava.交互式电视:JavaTV实时JAVA:realtimejavaPeertopeerjava:JXTAJ2ee与J2me的广泛应用.2020/1/3Java讲义张翔5KVirtualMachine(KVM)主要是Sun所提出Java在不同能力平台下的一个解决方案,由于KVM最小只要160Kbytes的记忆体就可以执行,因此称为KVirtualMachine,其中K是表示kilobyte的意思,其中包含了128K用来执行VirtualMachine及本身所必须具备的基本Libraries。EmbeddedJava与PersonalJava(也有人简称为PJava)这两项规格。其中EmbeddedJava是为了资源十分有限,而且没有显示设备的嵌入式装置而设计;PersonalJava则是为了在能够与网际网路连线、并拥有显示系统(例如彩色LCD)的消费性电子装置而设计。2020/1/3Java讲义张翔6Java发明人JamesGospling2020/1/3Java讲义张翔71.2Java语言的特点简单易学:1)风格类似于C++,基本语法与C语言类似;2)摒弃了C++中容易引发程序错误的地方:不再有全局变量不再有#include和#define等预处理功能不再有structure、union及typedef等不再有函数、不再有指针、不再有多重继承不再有goto语句不再有操作符重载(OperatiorOverloading)取消自动类型转换,要求强制转换自动进行内存管理3)提供了丰富的类库。2020/1/3Java讲义张翔8面向对象:支持静态和动态风格的代码继承及重用,是完全面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。解释执行:Java解释器(运行系统)能直接运行目标代码指令。平台无关:Java源程序被编译成一种高层次的与机器无关的byte-code格式语言,被设计在Java虚拟机上运行。性能优异:Java可以在运行时直接将目标代码翻译成机器指令,Sun用直接解释器一秒钟内可调用300,000个过程,翻译目标代码的速度与C/C++的性能没什么区别。分布式:Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。2020/1/3Java讲义张翔9可移植:Java应用程序可以在配备了Java解释器和运行环境的任何计算机系统上运行,通过定义独立于平台的基本数据类型及其运算,Java数据得以在任何硬件平台上保持一致。多线程:Java提供的多线程功能使得在一个程序里可同时执行多个小任务。多线程带来的好处是可以有更好的交互性能和实时控制性能。健壮:Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自已操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能。安全:Java的安全性可从两个方面得到保证。一方面,在Java语言里,象指针和释放内存等C++功能被删除,避免了非法内存操作。另一方面,当Java用来创建浏览器时,语言功能和一些浏览器本身提供的功能结合起来,使它更安全。动态:Java的动态特性是其面向对象设计方法的拓展,它允许程序动态地装入运行过程中所需要的类。2020/1/3Java讲义张翔101.3Java的运行机制1java虚拟机java虚拟机是软件模拟的计算机,可以在任何处理器上(无论是在计算机中还是在其它电子设备中)安全并且兼容的执行保存在.class文件中的字节码。java虚拟机的“机器码”保存在.class文件中,有时也可以称之为字节码文件。java程序的跨平台主要是指字节码文件可以在任何具有java虚拟机的计算机或者电子设备上运行,java虚拟机中的java解释器负责将字节码文件解释成为特定的机器码进行运行。java源程序需要通过编译器编译成为.class文件(字节码文件),java程序的编译和执行过程如图所示。2020/1/3Java讲义张翔112020/1/3Java讲义张翔12java虚拟机的建立需要针对不同的软硬件平台做专门的实现,既要考虑处理器的型号,也要考虑操作系统的种类。如下图所示,目前在SPARC结构、X86结构、MIPS和PPC等嵌入式处理芯片上、在UNIX、Linux、windows和部分实时操作系统上都有java虚拟机的实现。2020/1/3Java讲义张翔131.4Java运行平台1.J2EEJava2EnterpriseEdition企业计算是标准版的企业级扩充2.J2SEJava2StandardEdition桌面计算Java的标准与核心平台,面向个人用户3.J2MEJava2MicroEdition嵌入计算面向嵌入式系统应用2020/1/3Java讲义张翔142020/1/3Java讲义张翔151.4.2java应用程序接口(JavaAPI)Java.lang:包含形成语言核心的类,Java.lang.ref:提供对无用内存回收功能支持的类Java.lang.reflect:提供程序加载时候的动态类型检测功能Java.awt:用来构建和管理程序的图形用户界面Java.applet:提供执行Applet程序特殊行为的类Java.net:提供与网络应用相关的类和接口Java.io:提供处理输入输出文件的类Java.util:提供为应用任务设置的实用程序类和集合框架集2020/1/3Java讲义张翔161)java.lang本类包中包含了各种定义java语言时必须的类,这些类能够以其他类不能使用的方式访问java的内部。任何java程序都将自动引入这个包。其中的类包括:Object类:java中最原始、最重要的类,每个java类都是它的子类,它实现了每个类都必须具有的基本方法。基本类型包装器:Boolean,Character,Number,Double,Float,Integer,Long。String类:字符串类。Math类:数学函数的集合。执行线程:类Thread,ThreadGroup,接口Runable。异常和错误:类Exception,Error,接口Throwable。2020/1/3Java讲义张翔17(1)java.lang运行环境:可以通过类Runtime和System访问外部系统环境。System类的两个常用功能就是访问标准输入/输出流和错误流、退出程序。其他类:接口Cloneable、运行时的类等。(2)java.appletJavaApplet是Java编程的一个主要魅力,java.applet类包提供了Applet的运行机制以及一些编写Applet非常有用的方法。2020/1/3Java讲义张翔18(3)java.awt本类包是各种窗口环境的统一界面(AWT代表AbstractWindowsToolkit,即抽象窗口工具包),其中的类使得创建诸如窗口、菜单、滚动条、文本区、按钮以及复选框等图形用户界面(GUI)的元素变得非常容易。(4)java.awt.image类包能够以独立于设备的方式加载并过滤位图图象。(5)java.awt.peerjava.awt.peer是全部awt组件的对等对象接口的集合,每个接口都提供了机器相关基本的方法,awt使用这些方法来实现GUI,而不必关心是何种机器或操作系统。2020/1/3Java讲义张翔19(6)java.ioJava的输入/输出模式是完全建立在流的基础之上的。流是一种字节从一个地方到另一个地方的单向流动,可以把流附加于文件、管道和通信链路等。java.io类包中定义的许多种流类通过继承的方式进行组织,其中也包括一些用来访问本地文件系统上的文件的流类。(7)java.netjava.net类包用来完成与网络相关的功能:URL、网络通信。(8)java.utiljava.util类包包含了一些实用类和有用的数据结构,如字典(Dictionary)、散列表(Hashtable)、堆栈(Stack)、向量(Vectro)以及枚举类(Enumeration)等。2020/1/3Java讲义张翔20(6)java.ioJava的输入/输出模式是完全建立在流的基础之上的。流是一种字节从一个地方到另一个地方的单向流动,可以把流附加于文件、管道和通信链路等。java.io类包中定义的许多种流类通过继承的方式进行组织,其中也包括一些用来访问本地文件系统上的文件的流类。(7)java.netjava.net类包用来完成与网络相关的功能:URL、网络通信。(8)java.utiljava.util类包包含了一些实用类和有用的数据结构,如字典(Dictionary)、散列表(Hashtable)、堆栈(Stack)、向量(Vectro)以及枚举类(Enumeration)等。2020/1/3Java讲义张翔21J2sdk的安装与组成安装组成2020/1/3Java讲义张翔22安装JDK后产生如下目录结构:\bin目录:Java开发工具,包括Java编译器、解释器等\demo目录:一些实例程序\lib目录:Java开发类库\jre目录:Java运行环境,包括Java虚拟机、运行类库等由于JDK的安装程序中并不包含帮助文档,因此也必须从Sun的网站上下载进行安装。通常安装在JDK所在目录的docs子目录下面。用浏览器打开docs子目录下的index.html文件就可以阅读所有的帮助文档。2020/1/3Java讲义张翔232020/1/3Java讲义张翔24Java开发工具包括:Javac:Java编译器,用来将java程序编译成Bytecode。Java:Java解释器,执行已经转换成Bytecode的java应用程序。Jdb:Java调试器,用来调试java程序。Javap:反编译,将类文件还原回方法和变量。Javadoc:文档生成器,创建HTML文件。Appletviwer:Applet解释器,用来解释已经转换成Bytecode的java小应用程序。2020/1/3Java讲义张翔25设置环境变量:设置演示:1.6一个简单的java程序publicclassHelloWorld{publicstaticvoidmain(String[]args){//建立主方法Stringline1=“Hel

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功