JAVA教程全集电子版.docx
- 文档编号:15823779
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:199
- 大小:261.98KB
JAVA教程全集电子版.docx
《JAVA教程全集电子版.docx》由会员分享,可在线阅读,更多相关《JAVA教程全集电子版.docx(199页珍藏版)》请在冰点文库上搜索。
JAVA教程全集电子版
第一章Java概览
Java是一种理想的面向对象的网络编程语言。
它的诞生为IT产业带来了一次变革,也是软件的一次革命。
Java程序设计是一个巨大而迅速开展的领域,有人把Java称作是网络上的“世界语〞。
本章将简要介绍Java语言的开展历史、特点、Java程序的根本构造以及开发Java程序的环境和根本方法。
1.1Java语言开展历史
1.1.1Java语言产生的背景
1991年,SUNMicroSystem公司的JameGosling、BillJoe等人的研究小组针对消费电子产品开发应用程序,由于消费电子产品种类繁多,各类产品乃至同一类产品所采用的处理芯片和操作系统也不一样,就出现了编程语言的选择和跨平台的问题。
当时最流行的编程语言是C和C++语言,但对于消费电子产品而言并不适用,平安性也存在问题。
于是该研究小组就着手设计和开发出一种称之为Oak(即一种橡树的名字)语言。
由于Oak在商业上并未获得成功,当时也就没有引起人们的注意。
直到1994年下半年,随着Internet的迅猛开展,环球信息网WWW的快速增长,SunMicrosystems公司发现Oak语言所具有的跨平台、面向对象、高平安性等特点非常适合于互联网的需要,于是就改良了该语言的设计且命名为“Java〞,并于1995年正式向IT业界推出。
Java一出现,立即引起人们的关注,使得它逐渐成为Internet上受欢送的开发与编程语言。
当年就被美国的著名杂志PCMagazine评为年度十大优秀科技产品之一(计算机类就此一项入选)。
1.1.2互联网成就了Java
互联网的出现使得计算模式由单机时代进入了网络时代,网络计算模式的一个特点是计算机系统的异构性,即在互联网中连接的计算机硬件体系构造和各计算机所使用的操作系统不全是一样的,例如硬件可能是SPARC、INTEL或其他体系的,操作系统可能是UNIX、Linux、windows或其他的操作系统。
这就要求网络编程语言是与计算机的软硬件环境无关的,即跨平台的,用它编写的程序能够在网络中的各种计算机上正常运行。
Java正是这样迎合了互联网时代的开展要求,才使它获得了巨大的成功。
随着Java2一系列新技术〔如JAVA2D、JAVA3D、SWING、JAVASOUND、EJB、SERVLET、JSP、CORBA、XML、JNDI等等〕的引入,使得它在电子商务、金融、证券、邮电、电信、娱乐等行业有着广泛的应用,使用Java技术实现网络应用系统也正在成为系统开发者的首要选择。
事实上,Java是一种新计算模式的使能技术,Java的潜力远远超过作为编程语言带来的好处。
它不但对未来软件的开发产生影响,而且应用前景广阔,其主要表达在以下几个方面:
1〕软件的开发方法,所有面向对象的应用开发以及软件工程中需求分析、系统设计、开发实现和维护等。
2〕基于网络的应用管理系统,如完全基于Java和WEB技术的Intranet〔企业内部网〕上应用开发。
3〕图形、图像、动画以及多媒体系统设计与开发实现。
4〕基于Internet的应用管理功能模块的设计,如网站信息管理、交互操作设计及动态Web页面的设计等。
5〕其它应用。
1.2Java的特点
Java是一种纯面向对象的网络编程语言,它具有如下特点:
1)简单、平安可靠
Java是一种强类型的语言,由于它最初设计的目的是应用于电子类消费产品,因此就要求既要简单又要可靠。
Java的构造类似于C和C++,它汲取了C和C++优秀的局部,弃除了许多C和C++中比拟繁杂和不太可靠的局部,它略去了运算符重载、多重继承等较为复杂的局部;它不支持指针,杜绝了内存的非法访问。
它所具有的自动内存管理机制也大大简化了程序的设计与开发。
Java主要用于网络应用程序的开发,网络平安必须保证,Java通过自身的平安机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。
2〕面向对象
Java是一种完全面向对象的语言,它提供了简单的类机制以及动态的接口模型,支持封装、多态性和继承〔只支持单一继承〕。
面向对象的程序设计是一种以数据〔对象〕及其接口为中心的程序设计技术。
也可以说是一种定义程序模块如何“即插即用〞的机制。
面向对象的概念其实来自于现实世界,在现实世界中,任一实体都可以看作是一个对象,而任一实体又归属于某类事物,因此任何一个对象都是某一类事物的一个实例。
在Java中,对象封装了它的状态变量和方法〔函数〕,实现了模块化和信息隐藏;而类那么提供了一类对象的原型,通过继承和重载机制,子类可以使用或者重新定义父类或者超类所提供的方法,从而实现了代码的复用。
3〕分布式计算
Java为程序开发者提供了有关网络应用处理功能的类库包,程序开发者可以使用它非常方便地实现基于TCP/IP的网络分布式应用系统。
4〕平台的无关性
Java是一种跨平台的网络编程语言,是一种解释执行的语言。
Java源程序被Java编译器编译成字节码〔Byte-code〕文件,Java字节码是一种“构造中立性〞〔architectureneutral〕的目标文件格式,Java虚拟机〔JVM〕和任何Java-使能的Internet浏览器都可执行这些字节码文件。
在任何不同的计算机上,只要具有Java虚拟机或Java使能的Internet浏览器即可运行Java的字节码文件,不需重新编译〔当然,其版本向上兼容〕。
实现了程序员梦寐以求的“一次编程、到处运行〞〔writeonce,runeverywhere!
〕的梦想。
5)多线程
Java的多线程〔multithreading〕机制使程序可以并行运行。
线程是操作系统的一种新概念,它又被称作轻量进程,是比传统进程更小的可并发执行的单位。
Java的同步机制保证了对共享数据的正确操作。
多线程使程序设计者可以在一个程序中用不同的线程分别实现各种不同的行为,从而带来更高的效率和更好的实时控制性能。
6)动态的
一个Java程序中可以包含其他人写的多个模块,这些模块可能会遇到一些变化,由于Java在运行时才把它们连接起来,这就防止了因模块代码变化而引发的错误。
7)可扩大的
Java发布的J2EE标准是一个技术标准框架,它规划了一个利用现有和未来各种Java技术整合解决企业应用的远景蓝图。
正如SUNMicroSystems所述:
Java是简单的、面向对象的、分布式的、解释的、有活力的、平安的、构造中立的、可移动的、高性能的、多线程和动态的语言。
1.3Java的工作原理
1.3.1Java虚拟机
Java虚拟机其实是软件模拟的计算机,它可以在任何处理器上〔无论是在计算机中还是在其它电子设备中〕解释并执行字Java的字节码文件。
Java的字节码被称为Java虚拟机的机器码,它被保存在扩展名为.class的文件中。
一个Java程序的编译和执行过程如图1-1所示。
首先Java源程序需要通过Java编译器编译成扩展名为.class的字节码文件,然后由Java虚拟机中的Java解释器负责将字节码文件解释成为特定的机器码并执行。
Filename.java
源文件
编译器
Filename.class
字节码文件
解释器
图1-1Java程序的编译和执行过程
1.3.2内存自动回收机制
在程序的执行过程中,系统会给创立的对象分配内存,当这些对象不再被引用时,它们所占用的内存就处于废弃状态,如果不及时对这些废弃的内存进展回收,就会带来程序运行效率下降等问题。
在Java运行环境中,始终存在着一个系统级的线程,专门跟踪对象的使用情况,定期检测出不再使用的对象,自动回收它们占用的内存空间,并重新分配这些内存空间让它们为程序所用。
Java的这种废弃内存自动回收机制,极大地方便了程序设计人员,使他们在编写程序时不需要考虑对象的内存分配问题。
1.3.3代码平安性检查机制
Java是网络编程语言,在网络上运行的程序必须保证其平安性。
如何保证从网络上下载的Java程序不携带病毒而平安地执行呢?
Java提供了代码平安性检查机制。
Java在将一个扩展名为.class的字节码文件装载到虚拟机执行之前,先要检验该字节码文件是否符合字节码文件标准,代码中是否存在着某些非法操作。
检验工作由字节码检验器〔bytecodeverifier〕或平安管理器〔SecurityManager〕进展。
检验通过之后,将字节码文件加载到Java虚拟机中,由Java解释器解释为机器码并执行。
java虚拟机把程序的代码和数据都限制在一定内存空间里执行,不允许程序访问超出该范围,保证了程序的平安运行。
1.4Java的运行环境JDK
1.4.1Java平台
Java不仅仅是一种网络编程语言,还是一个不断扩展的开发平台。
Sun公司针对不同的市场目标和设备进展定位,把Java划分为如下三个平台:
1〕J2SE〔Java2StandardEdition〕是Java2的标准版,主要用于桌面应用软件的编程。
它包含了构成Java语言根底和核心的类。
我们在学习Java的过程中,主要是在该平台上进展的。
2〕J2EE〔Java2EnterpriseEdition〕是Java2的企业版,主要是为企业应用提供一个效劳器的运行和开发平台。
J2EE不仅包含J2SE中的类,还包含了诸如EJB、servlet、JSP、XML等许多用于开发企业级应用的类包。
J2EE本身是一个开放的标准,任何软件厂商都可以推出自己符合J2EE标准的产品,J2EE将逐步开展成为强大的网络计算平台。
3〕J2ME〔Java2MicroEdition〕是Java2的微缩版,主要为消费电子产品提供一个Java的运行平台,使得能够在手机、机顶盒、PDA等消费电子产品上运行Java程序。
1.4.2建立Java开发环境
要使用Java开发程序就必须先建立Java的开发环境。
当前有许多优秀的Java程序开发环境,诸如JBuilder、VisualAge、VisualJ++等等,这些工具功能强大,很适合有经历者使用。
对于学习Java者来说,应该使用Sun公司的Java开发工具箱JDK(JavaDevelopmentKit),它拥有最新的Java程序库,功能逐渐增加且版本在不断更新,尽管它不是最容易使用的产品,但它是免费的,可到Java.sun站点上免费下载。
下边我们在MicrosoftWindows操作系统平台上安装JDK,建立Java的开发环境。
1〕下载并安装JDK文件
当前Jdk版本已经更新到1.6.0版本,我们就Jdk1.6.0版本为例,从Java.sun站上下载安装文件jdk-6-windows-i586。
双击安装文件jdk-6-windows-i586,按照安装文件的提示一步步执行即可安装。
图1.2目录构造
Jdk1.6.0
bin
demo
include
lib
jre
bin
lib
applet
audio
cmm
client
server
zi
db
如果将JDK安装到C:
\Jdk1.6.0目录下,安装成功后,将有图1.2所示的目录构造。
2〕下载并安装Java帮助文档
Java帮助文档对程序设计人员来说是很重要的,由于JDK的安装文件中不包括帮助文档,因此也需要从网站上下载而后安装。
帮助文档下载与安装的过程和步骤与JDK类似,不再重述。
帮助文档一般被安装在docs的目录下,使用浏览器翻开该目录下的index.html文件即可查阅所有的帮助文档。
3〕设置运行路径
在运行Java程序或进展一些相关处理时,用到了工具箱中的工具和资源,这就需要设置两个环境变量PATH和CLASSPATH,以获取运行工具和资源的路径。
在不同的操作系统下设置环境变量的方式有所不同,下边我们以WindowsXP系统为例说明设置环境变量的操作方法和步骤:
(1)右击“我的电脑〞图标;
(2)在出现的快捷菜单中单击“属性〞选项;
(3)在出现的“系统属性〞对话框窗口上单击“高级〞选项;
(4)单击对话框上的“环境变量〞按钮;
(5)在出现的“环境变量〞对话框上,单击用户变量框内的“新建〞按钮;
(6)出现如图1.3的“新建用户变量〞对话框窗口。
在“变量名〞文本框中输入:
CLASSPATH;在“变量值〞文本框中输入:
.;c:
\jdk1.6.0\lib\dt.jar;c:
\jdk1.6.0\lib\tools.jar
图1.3新建用户变量
然后,单击“确定〞按钮。
这就设置了环境变量CLASSPATH。
重复(5)~(6)再设置PATH,输入变量值为:
.;c:
\jdk1.6.0\bin
完成之后,要使环境变量生效,最好重新启动计算机。
1.4.3开发工具简介
下边简要介绍在命令提示符方式下几个开发工具的使用。
1〕Java编译器Javac.exe
Javac用于将扩展名为.java的源程序代码文件编译成扩展名为.class字节码文件。
使用格式:
javacFileName.java
例:
编译java源程序myProg.java
JavacmyProg.java
执行该命令将在当前目录下生成字节码文件myProg.class。
注意:
在编译文件时,源文件的扩展名.java必须带上,否那么会出现编译错误,不能生成字节码文件。
2〕解释器Java.exe
解释执行编译后的字节码文件程序。
使用格式:
javaclassFileName
例:
解释执行字节码文件myProg.class
JavamyProg
注意:
运行的类文件名不需要带.class扩展名。
3〕Applet浏览器Appletviewer.exe
Applet是用java语言编写的小应用程序。
Applet不能够直接用Java解释器解释执行,只能被嵌入到HTML文档中,由浏览器装入执行。
使用格式:
appletviewerhtmlFileName.html
有关执行Applet的例子,我们将在后边介绍。
此外,工具箱中还提供了其它大量相关的工具,诸如:
Java档案文件管理器jar.exe、Java文档生成器javadoc.exe等等,它们都被存放在c:
\Jdk1.6.0\bin目录下。
要了解它们的具体使用方法,请参阅相关的文档。
1.5创立Java程序
Java是一种纯面向对象的程序设计语言,面向对象的程序程序设计有如下的特点:
1〕程序中所有东西都是对象,可将对象看成是一种新型变量;它保存着数据,且能对自身进展操作。
2〕程序是一些对象的组合,通过消息传递进展相关的处理,各对象知道自己该做些什么。
3〕每个对象都有自己的存储空间并可容纳其他对象。
也就是说通过封装现有的对象,可以创立出新的对象。
对象的概念看似简单,其实却可到达任意高的复杂程度。
4〕如前所述,每个对象都属于某一类型,因此每个对象都是某个类的一个实例。
类的最重要的特征就是能将什么消息发给它,同一类所有对象都能接收一样的消息。
一般说来,Java程序有两类:
应用程序(Application)和小应用程序(Applet)。
下边我们分别创立两个简单的程序,看一下两类应用程序的根本构造。
1.5.1第一个应用程序(application)
我们可以用文本编辑器编辑如下的程序代码:
/**
*这是一个简单而经典的例子程序,在初级的Java编程书籍中,几乎都使用它。
*它的功能是在屏幕上输出:
HelloWorld!
*程序的名字为:
HelloWorld.Java
*/
importjava.lang.*;
publicclassHelloWorld
{
publicstaticvoidmain(String[]argc)
{
System.out.println("HelloWorld!
");
}
}
下边我们简要分析一下该程序的构造:
类似于C和C++,以字符/*开场并以字符*/完毕的行为注解行。
注解行不是程序的代码局部,只是为了程序的易读性。
在程序开头是类包引入语句:
importjava.lang.*;它将类包java.lang引入到本程序,以便在本程序中使用该包中已定义好的类。
Java带有很多类包,每个包中都有很多已定义好的类,并编译成了字节代码,用户可直接引用,这实现了代码的重用。
publicclassHelloWorld;
该语句用来声明一个HelloWorld类,面向对象的程序是以类为根底的。
在语句中:
class为关键字,定义一个类。
public是访问控制修饰符,表示该类是一个公有类,其它所有的类也可以访问这个类的对象。
每个类的定义都以符号“{〞开场,“}〞完毕,类中可以定义数据成员〔变量〕和方法成员。
在本类中,没有定义数据成员,只定义了方法main():
publicstaticvoidmain(Stringargs[])
在该方法说明语句中:
public是访问控制修饰符。
static是修饰符。
在类中,假设方法被定义为static〔静态的〕,那就是说,无需创立类对象即可调用静态方法。
因此也被称为类方法。
void表示方法无返回值。
main为方法名。
Strringargs[]是参数说明,表示执行该程序时,可以带一组字符串参数。
方法也是以“{〞开场,以“}〞完毕。
在该main()方法中只有一个语句:
System.out.println(“HelloWorld!
〞);
它的作用是在屏幕上输出信息:
HelloWorld!
在语句中:
System是java.lang类包中的一个类。
它是java最重要、最根底的类之一,它提供了系统标准设备资源〔显示器、键盘〕的接口。
out是System类定义的一个标准输出流的成员。
println是System类中定义的一个静态的〔static〕方法,其功能是向标准输出设备〔屏幕〕输出信息。
要运行上述程序,需要以下步骤:
1〕使用Java编译器编译Java源程序:
javacHelloWorld.java
生成字节码文件HelloWorld.class。
2〕使用Java解释器解释执行字节码文件HelloWorld.class:
javaHelloWorld
注意:
Java应用程序中可以有多个类,每个类中也可以有多个方法,但只能有一个类和程序同名且只有该类中具有main()方法,程序最先执行的是main()方法。
1.5.2第一个小应用程序(applet)
先将上面介绍的Application程序改写为Applet〔小应用程序〕,然后分析JavaApplet程序的构造。
/**
*该小应用程序的名字是:
HelloWorldApplet.java
*它的功能是在屏幕指定的位置上显示:
Helloworld!
*它不能直接执行,只能被嵌入到HTML文档中,由浏览器装入执行
**/
importjava.applet.*;
importjava.awt.*;
publicclassHelloWorldAppletextendsApplet
{
publicvoidpaint(Graphicsg)
{
g.drawString(“Helloworld!
〞,10,50);
}
}
本程序引入使用两个类包java.awt和jva.Applet中的类Graphics和Applet。
小应用程序在类的声明上和应用程序不同,它必须含有extendsApplet项,表示HelloWorldApplet类是由Applet类派生而来的,HelloWorldApplet是派生类又称子类,而Applet是超类又称父类,子类可以继承父类的所有功能〔特征、行为〕。
比方HelloWorldApplet类中含有一个方法paint()就是从超类继承过来的,不过在这里根据需要进展了重写。
paint()方法中只有一个语句:
g.drawString(“HelloWorld!
〞,10,50);
在语句当中:
g是一个Graphics类的对象,该对象由方法的参数传递所得。
drawSrting()是Graphics类的方法,其功能是在指定位置〔以Applet左上角为坐标原点,以像素为单位〕显示指定的信息。
本语句的功能是在Applet屏幕上的〔10,50〕坐标处开场显示:
HelloWorld!
由于Applet程序的运行方式与Application程序不同,它是被嵌入在HTML文档中由浏览器装入运行的。
下边简要介绍一下HTML语言,有关详细的内容请查阅相关的书籍资料。
超文本标记语言〔HyperTextMark-upLanguage〕是用来定义WEB页面的语言,简称HTML。
用HTML定义的页面也称文档,它被存储在扩展名为.html或.htm的文件中。
HTML文档包含一组元素,每个元素都用标签〔tag〕来标识。
因此又称HTML为标记语言。
文档将以开场,最后以完毕。
在这里分界符和都是标签,文档中的所有元素都会位于类似这样的一对尖括号内。
所有元素的标签是不区分大小写的,但习惯上使用大写,以便与文本内容区分。
下边我们使用文本编辑器创立如下嵌入HelloWorldApplet程序的HTML文档:
!
!
并将它以FirstApplet.html名字存储。
在创立HelloWorldApplet.java和FirstApplet.html文件之后,要运行HelloWorldApple程序需要以下步骤:
1〕使用Java编译器编译HelloWorldApplet.java源程序:
javacHelloWorldApplet.java
生成字节码文件HelloWorldApplet.class。
2)使用Applet浏览器浏览页面并装入HelloWorldApplet.class执行:
appletviewerFirstApplet.html
上边简要介绍了Java的应用程序和小应用程序,对Java程序有了根本的认识。
我们应该注意以下几点:
(1)Java程序总是由一些类组成。
在每个Java程序中可以包含有多个类,但至少必须有一个类;
(2)可以把每个类的程序代码放入一个单独的程序文件中,一般情况下程序文件名和其中定义的类名取名相一致;
(3)源程序文件必须使用扩展名.java。
1.6RAD快速开发工具
在学习Java的过程中,需要大量的编辑、编译和调式运行Java程序的操作,单纯使用前边介绍的JDK工具不太方便,因为它们是命令提示符方式的,每次都需要在键盘上输入相关的命令。
下边我们介绍两个常用的、使用方便的快速开发工具,它们都是可视化界面,功能强大,一旦掌握可以起到事半功倍的效果。
1.6.1JCreator
JCreator是一个非常方便实用的开发工具,它比拟小,下载的文件只有几兆,它本身不带JDK,所以在安装JCreator之前,必须保证计算机上已经安装了JDK,其实它就是一个利用JDK工具的外壳程序。
本书很多例子均是在该环境下调试完成的。
1〕安装Jcreator
我们可以到:
//jcreator网站上下载英文版JCreator,也可到国内
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 教程 全集 电子版