第1章Java语言概述.docx
《第1章Java语言概述.docx》由会员分享,可在线阅读,更多相关《第1章Java语言概述.docx(22页珍藏版)》请在冰豆网上搜索。
第1章Java语言概述
日期:
2010年9月1日---2011年1月4日
电子教案:
Java6实用教程
任课教师:
潘硕
专业:
07信息管理与信息系统班级:
教材:
Java2实用教程(第三板)—清华大学出版社
参考书:
JAVA应用教程清华大学出版社2005年9月;MicroslftVisualJ++6.0-Microslft出版社99版;VisualJ++6.0参考手册-清华大学出版社99版、JAVA5国际认证SCJP等
目标:
学生通过本课程的学习应具备并掌握Java语言的基础和程序开发的能力.
第1章Java语言概述
一、教学目标:
了解Java语言特点、程序运行机制、Java平台开发体系、J2EE的N层架构﹑Java运行环境安装与配置﹑Java程序分类﹑Java面向对象编程思想﹑类的定义﹑创建对象.
二、重点与难点:
Java运行环境安装与配置、测试运行环境﹑Java面向对象编程思想﹑类的定义﹑创建对象..
教具:
可进行广播教学的或多媒体计算机局域网,投影仪及相关的软硬件.
三、操作系统和软件:
WindowsXPSP2/Windows2003Server;j2sdk1.5、JcreatorLE、MicrosoftAccessDatabase(JBuilder2006、Eclipse-java-europa-win32.zip、MyEclipse6.01All-inOne)
1.1Java语言的简述
1.1.1Java语言的诞生
Java发展史
1991年,美国SUNMicrosystem公司的JamesGosling领导的Green开发小组,负责开发嵌入式设备的名为Oak的橡树语言该语言包括应用到家用电子产品中,如有线电视交换盒,PDA等的微处理器.它能够移植,安全可靠,适用于网络分布环境,当时C++语言自然是好的选择,但在开发过程中遇到了一些难以克服的困难使他们意识到必需彻底解决C++语言的问题,James等人从对C++的改造着手,得到了一个非常成功的开发系统Oak软件,蕴藏着Java原型。
1994年,Internet上的WWW由字符界面发展到了图形界面,SUN公司的副总裁BillJoy果断决定将这种新开发的语言定位到WWW应用上,并且成功地开发出来一个WWW浏览器Hotjava。
BillJoy力排众议,采取了“让用户免费使用来占领市场份额”的策略,从而使这种语言在万维网上蓬勃发展。
1995年5月,在SanFrancisco举行的Sunworld会议上,SUN公司正式发布了Java语言技术(JavaDevelopmentKit_JDK1.0),该语言具有安全﹑跨平台﹑面向对象﹑简单﹑适用网络等显著特点。
Netscape、SGI、Macromedia、IBM、Microsoft、Novell、Oracle、Borland等大公司相继宣布了在其产品中支持Java,纷纷购买了Java的使用权,Java被评为1995年美国最优秀的计算机语言。
Java语言由此在几年时间内迅速风靡世界,风靡互联网成为全球最流行的网络编程语言。
1.1.2Java语言主要特点
SUN公司在“Java白皮书”中对Java的定义是:
“Java:
Asimple,object-oriented,distributed,interpreted,robust,secure,architecture-neutral,portable,high-performance,multi-threaded,anddynamiclanguage”。
Java是一种具有“简单、面向对象的、分布式、解释型、健壮性(鲁棒性)、安全、平台无关、可移植、高性能、多线程和动态执行”等特性的语言。
Java基本特点(11点)
Java语言是一种适用于网络的编程语言,其结构与C++相似,是完全面向对象的编程语言,充分吸取了C++语言的优点,采用C++程序员熟悉的C++语法,同时去掉C++语言的指针﹑内存申请和释放,使程序更加安全可靠..
(1)简单,风格类似C++。
与C++相比,Java不在支持运算符重载﹑多重继承﹑如,指针和多重继承通常使程序变得复杂,Java用接口取代了多重继承,并取消了指针。
Java语言还通过实现自动垃圾收集大大简化了程序设计人员的内存管理工作
(2)面向对象,任何事物在Java中都是对象,重点在应用程序数据操作。
Java语言以面向对象为基础。
在Java语言中,不能在类外面定义单独的数据和函数,所有对象都要派生于同一个基类,并共享它所有功能,也就是说,Java语言最外部的数据类型是对象,所有的元素都要通过类和对象来访问。
(3)分布式.Java语言从诞生就和网络紧密地联系在一起。
在Java中还内置了TCP/IP、HTTP和FTP等协议类库。
因此,Java应用程序可以通过URL地址打开访问网络上的对象,访问方式与访问本地文件系统几乎完全相同。
(4)健壮性.Java能够检查程序在编译和运行时的错误。
类型检查能帮助用户检查出许多在开发早期出现的错误。
同时很多集成开发工具(IDE)的出现使编译和运行Java程序更加容易,并且很多集成开发工具(如Eclipse)都是免费的。
编译和运行程序时检查问题,提供垃圾收集内存管理,异常处理.
(5)体系结构中立.运行Java程序需要解释器。
Java解释器能直接对Java字节码进行解释执行。
字节代码独立于机器,它本身携带了许多编译时信息,使得连接过程更加简单,因此可以在任何有Java解释器的机器上运行。
Java程序被编译为字节码,只要安装Java虚拟机就可运行,与平台无关.
(6)解释执行.编译器javac.exe编译.Java文件被编译为.Class字节码类文件,Java解释器(Java.exe)运行执行类文件,得到结果.在DOS下执行需配置环境变量.
(7)高性能(先编译后执行)-由于Java程序是可解释的,字节码不是直接由系统执行,而是在解释器中运行,所以它的速度比多数交互式应用程序提高了很多。
(8)多线程—多线程是程序同时执行多个任务的一种功能。
多线程机制能够使应用程序并行执行多项任务,而且同步机制保证了各线程对共享数据的正确操作。
使用多线程,程序设计人员可以用不同的线程完成特定的行为,使程序具有更好的交互能力和实时运行能力。
(9)动态—Java类库中可自由的加入新方法和实例变量不会影响用户程序的执行.
(10)安全性:
去除了C++中的指针﹑增加了自动内存管理﹑建立在公共密钥技术基础上﹑严格检查访问数据权限﹑程序运行稳定可靠.
(11)可移植性
Java程序具有与体系结构无关的特性。
这一特征使Java程序可以方便地移植到网络的不同机器。
同时,Java的类库中也实现了针对不同平台的接口,使这些类库可以移植。
1.1.3Java程序运行机制
Java语言包含三种核心机制:
Java虚拟机(JavaVirtualMachine-JVM)﹑垃圾收集器(Garbagecollection)和代码安全检测(CodeSecurity)
1.Java虚拟机
Java虚拟机是通过软件模拟来实现制定的一项技术规范。
JVM是一个能运行Java字节码的操作平台,定义有指令集、寄存器组、栈结构、垃圾收集器、存储区等五部分逻辑器件,并详细地规定了这些组件的规格。
Java虚拟机的实现方案有两种,既可以用软件实现,也可以用硬件即Java芯片实现。
目前的Java系统都是用软件实现的。
JVM事实上就是可以执行Java字节码的一台机器
Java虚拟机读取并处理经编译过的与平台无关的字节码.class文件;Java编译器针对Java虚拟机产生.class文件,因此独立于平台;Java解释器负责解释Java虚拟机的代码在特定的平台上运行.
2.自动垃圾收集机制释放内存空间.
3.代码安全性检测
4.Java开发三过程
(1)用JcreatorLE或MyEclipse6.01(All-inOne)编写*.Java原文件,编译为字节码*.class文件,并执行.
(2)用Javac.exe编译器编译*.Java原文件得到字节码文文件*.class
(3)运行Java程序.Java分应用程序Application和Applet小程序,运行应用程序用Java.exe解释器或JcreatorLE或MyEclipse6.01集成开发环境,运行Applet小程序用浏览器或小程序浏览器appletviewer.exe
1.2Java应用开发体系
J2SE(Java2StandardEdition,Java2标准版)
J2ME(Java2MicroEdition,Java2微型版)
J2EE(Java2EnterpriseEdition,Java2企业版)
1.2.1J2SE体系
J2SE(Java2StandardEdition,Java2标准版)—创建桌面与工作站应用的Java平台。
安装JDK(JavaDevelopmentKit1.5)软件包后就建立了一个J2SE开发和运行平台。
其核心技术包括:
面向对象的编程技术、Java程序异常的处理、控制台程序开发、图形界面程序开发、多线程编程、I/O流编程、网络编程、JavaApplet及JavaBean组件开发技术。
1.2.2J2ME体系
J2ME(Java2MicroEdition,Java2微型版)--创建嵌入式应用程序,如开发PDA、无线MobilePhone、网络电视、和可视电视等家电应用程序,需J2SE支持。
1.2.3J2EE体系
J2EE的基石是EJB,是Java中的服务器端组件标准,它提供一个独立的平台、便携式、多用户、安全和标准的企业级平台,服务器端部署用Java技术来完成。
J2EE总体结构图如图1-3。
容器-所谓容器就是一组提供运行环境服务的管理器,不同的容器要符合不同的服务要求和规范,如HTTPContainer提供了解析HTTP的能力,使得HTTP代码可通过HTTP协议发布到Internet上。
Web容器运行在J2EE服务器上。
它管理J2EE应用程序中所有JSP和Servlet组件的执行。
同理,EJB容器它管理J2EE应用程序中所有EnterpriseBean(企业级Bean)的执行。
SessionBean在J2EE应用程序中用来完成一些服务器端的业务操作,如访问数据库﹑调用其他EJB组件﹑在电子商务中充当计价器﹑信用卡验证器﹑商品搜索引擎,会话Dean代表动作。
EntityBean代表持久保存的数据,典型的是存储在数据库中的数据,即使服务器崩溃后数据仍然存在,在电子商务中实体Bean代表产品﹑雇员﹑信用卡﹑定单等数据对象。
J2EE平台由一整套服务(Service)、API—ApplicationProgrammingInterface和协议构成,对开发Web的多层应用提供功能支持。
其13种核心技术规范为:
(1)JDBC(JavaDatabaseConnection--Java数据库连接);
4种驱动程序:
JDBC-ODBC桥、JDBC本地接口、JDBC网络接口、PureJavaDriver纯Java驱动.
(2)JNDI(JavaNamingDirectoryInterface--Java命名和目录接口);用于名字和目录服务,提供一致接口来存取和操作企业级的资源,如DNS(DomainNameService—域名服务)和本地文件系统等。
(3)EJB(企业级JavaBean);J2EE核心技术,提供一个框架来开发分步式商务逻辑,简化了具有可伸缩性和高度复杂的企业级应用开发。
(4)RMI(RemoteMethodInvocation—远程方法调用);用连续方式在客户端和服务器端传递数据,是EJB的基础。
(5)JSP(JavaServerPages—Java服务器页);JSP页面由HTML代码和嵌入Java代码组成。
服务器端根据客户端需要请求时,对Java代码处理,返回生成的HTML给客户端浏览器。
(6)Servlet(服务器端小程序);Servlet提供的功能与JSP类似,但实现的方式不同,JSP在HTML中嵌入少量Java代码,而Servlet全部由Java代码组成,本质上就是Java类,它可以处理HTTP各个方面的内容,这是开发人员应用的最大原因。
(7)XML(eXtensibleMarkupLanguage—可扩展标记语言,也称元值标语言可用标签来描述用户自定义数据,通过词表可以与其他用户实现数据共享,并存储数据,交换传输数据,与HTML不同的是XML用来描述数据和存储数据。
而HTML是用来显示内容的。
);用来定义其他标记语言,并具有平台独立性。
(8)JMS(JavaMessagingService—Java消息服务);JMS实现和面向消息的中间件的通信,既支持点对点域,也支持发布/订阅类型的域。
(9)IDL(InterfaceDescriptionLanguage—接口描述语言);在JavaIDL的支持下,可将CORBA--对象请求代理结构集成在一起。
创建Java对象在CORBA(公共对象请求代理结构)中使用。
(10)JTA(JavaTransactionArchitecture—Java事务框架);JTA定义了一种标准的API,应用系统可以存取各种事务。
(11)JTS(JavaTransactionService--Java事务服务);JTS规定了事务管理器的实现方式,为应用服务器,资源管理器,独立的应用及通信资源管理器提供事务服务。
(12)JavaMail(Java邮件);用于存取邮件服务的接口,提供邮件服务器的抽象类
(13)JAF(JavaBeanActivationFramework—JavaBean活动框架);JavaMail通过JAF处理不同编码的邮件附件。
J2EEN层体系结构
J2EE体系分为表示层、应用层、服务层、域层、连通性层和持续化层.每一层执行具体任务,物理上横跨客户机和服务器,逻辑上分为Web容器、EJB容器和数据库.如图1-4
(1)表示层(客户层):
分为客户端层和服务器端层.客户端层负责管理用户I/O交户作用,提供HTML表示应用数据,服务器端层用JSP或Servlet产生Web的动态内容.
(2)应用层(Web层):
是客户端表示层和服务层之间中介,根据用户请求调用服务,使得每一个独立应用行为得以执行.如我需要注册等.
(3)服务层(EJB容器-业务层组件):
为特定的商业使用案例和应用要求提供应用程序接口.服务操纵对象,存储和返回与应用有关的数据.服务层由3部分形成:
简单Bean、会话Bean用于服务层和客户端程序的临时交互,当客户端程序执行完后会话Bean和相关数据就会消失、和事务相关组成.
(4)域层(EJB容器-业务层组件):
EntilyBean-实体Bean用于表示数据库中的一条永久记录是应用的问题领域.如定单录入系统:
有定单、产品、销售商,等.抽象出来的模型.
(5)连通性层:
域对象能与存储库和其它企业信息系统通信.如大型主机或数据库服务器.
(6)持续化层:
能永久地存储对象的状态.如企业管理系统、数据库、存储数据的大型主机.
(7)N层架构优点:
(1)简化体系开发.
(2)集成现有企业信息系统,J2EE提供访问EIS(企业信息系统)的标准API.(3)提供可扩展性,提供事务支持、数据库连接、生命周期管理等.(4)安全机制:
J2EE支持丰富的跨越整个体系的一至的安全措施.
1.4Java运行环境的安装配置
1.4.1Java工具包
jdk1.5.0_08(JavaSEDevelopmentKit-JDK)其安装目录有
bin目录-存放系统可执行文件,如Java编译器javac.exe﹑Java运行时解释器java.exe和小程序浏览器appleviewer.exe
demo目录—存示例文件
include目录:
存与C语言相关的头文件
lib目录-存放程序类库*.jar文件
jre目录-存放Java程序运行相关文件
Src.zip:
该压缩文件包含Java库程序的源程序
doc目录存JDK文档
1.4.2环境变量设置(保正Java源程序在不同磁盘目录下能运行,需设置环境变量)
WindowsXP
控制面板→性能和维护→系统→高级→环境变量
环境变量设置(..用户变量)
PATH
C:
\ProgramFiles\jdk1.5\bin;
CLASSPATH
C:
\ProgramFiles\jdk1.5\lib\dt.jar;C:
\ProgramFiles\jdk1.5\lib\tools.jar;
2.编译源程序在DOS命令符下,如
javachello.java
编译成功后生成hello.class文件
3.运行程序
程序运行的过程就是执行*.class文件中的指令过程,用JDK中的解释器java.exe运行java应用程序,如:
在DOS命令符下:
Javahello
1.4.3开发环境和工具
1.JcreatorLE
MyEclipse6.0
Eclipse是基于Java的,开放源码的、可扩展的应用开发平台,它为编程人员提供了一流的Java集成开发环境(IntegratedDevelopmentEnvironment,IDE)。
是一个可以用于构建集成Web和应用程序的开发工具平台,其本身并不会提供大量的功能,而是通过插件来实现程序的快速开发功能。
Eclipse是一个成熟的可扩展的体系结构。
它为创建可扩展的开发环境提供了一个平台。
这个平台允许任何人构建与环境或其他工具无缝集成的工具,而工具与Eclipse无缝集成的关键是插件。
Eclipse还包括插件开发环境(PDE),PDE主要针对那些希望扩展Eclipse的编程人员而设定的。
这也正是Eclipse最具魅力的地方。
通过不断的集成各种插件,Eclipse的功能也在不断的扩展,以便支持各种不同的应用。
虽然Eclipse是针对Java语言而设计开发的,但是它的用途并不局限于Java语言,通过安装不同的插件Eclipse还可以支持诸如C/C++、PHP、COBOL等编程语言。
Eclipse利用Java语言写成,所以Eclipse可以支持跨平台操作,但是需要SWT(StandardWidgetToolkit)的支持,不过这已经不是什么大问题了,因为SWT已经被移植到许多常见的平台上,例如Windows、Linux、Solaris等多个操作系统,甚至可以应用到手机或者PDA程序开发中。
1.5Java程序分类
Java分
(1)应用程序Application.(JavaApplication以mian()方法作为程序入口,由Java解释器加载执行)
【例1-1】TestHelloWorld.java–控制台应用程序
publicclassTestHelloWorld{
publicstaticvoidmain(Stringargs[])
{
System.out.println("HelloWorld!
");
}
}
JavaApplet没有mian()方法作为程序入口,而是由浏览器加载时由init()方法或paint()方法作为程序入口执行.
(1)在DOS下执行
C:
\java\pan>javacTestHelloWorld.java↙(编译为TestHelloWorld.Class文件);C:
\java\pan>javaTestHelloWorld↙(执行输出结果HelloWorld!
).
(2)用Jcreator工具软件编译和执行
我们用Jcreator工具软件编译和执行Java程序代码.
执行结果:
(2)Applet小程序Welcome.java–编译后为welcome.class文件在Welcome.htm文件中用浏览器加载执行
1.5.2运行JavaApplet小程序
【例1-2】welcome.java-编写Applet小程序源程序
用Jcreator工具软件编译源程序为welcome.java文件
importjava.applet.*;//用关键字import引入系统提供的所有Applet类.
importjava.awt.*;//用关键字import引入图形包或类
publicclassWelcomeextendsApplet
{
//重载paint()方法—每次Applet被其它窗口覆盖后重新显示时,都会自动调用paint()方法重新绘制小程序的显示区域.在paint()方法中获得Graphics类
publicvoidpaint(Graphicsg)
{
g.setColor(Color.red);//设置字体颜色为红色
//Graphics类调用它的输出字符串方法在x,y坐标为30处绘制指定字符串
.g.drawString("欢迎你学习Java语言",30,30);
g.setColor(Color.blue);//设置字体颜色为蓝色
g.drawString("Java一定会给带来快乐!
",20,60);
}
}
2.编译后为welcome.class文件2.程序编译指行
3.Welcome.htm-JavaApplet小程序welcome.class文件必须嵌入HTML才能被执行,其标记格式如下:
Applet小程序