java 第14章.docx
- 文档编号:30735364
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:100
- 大小:456.64KB
java 第14章.docx
《java 第14章.docx》由会员分享,可在线阅读,更多相关《java 第14章.docx(100页珍藏版)》请在冰豆网上搜索。
java第14章
关于本课程
本书的主要目标是为你提供有关Java应用和Javaapplets的面向对象的程序设计所必需的知识和技能;并讲授Java编程语言句法和面向对象的概念,以及Java运行环境的许多特性,对图形用户界面(GUIs)、多线程和网络的支持等。
本课程包括了参加SUNCertifiedJavaProgrammer和SUNCertifiedJavaDeveloper考试所必备的知识。
一、课程概述
课程概述
本课程主要包括以下内容:
-Java编程语言句法
-应用于Java编程语言的面向对象的概念
-图形用户界面(GUI)编程
-创建Applet
-多线程
-网络
本课程首先讨论了Java运行环境和Java编程语言句法,然后阐述了应用于Java编程语言的面向对象的概念;随着课程的进展还将讨论有关Java平台的更先进的特性。
本课程授课对象应具备运用Java编程语言或其它语言进行基本语言设计的能力,它是“非程序员Java编程”(“JavaProgrammingforNon—Programmers”,SL-110)课程的延续。
尽管Java编程语言独立于操作系统,但它所产生的图形用户界面(GUI)却可能依赖于执行其代码的操作系统。
本课程中的例题所使用的代码运行于SolarisTM操作系统,因而本手册中的图形具备MotifGUI。
如果将这些代码运行于Windows95操作系统,则可产生MicrosoftWindows95GUI。
本课程的内容适用于所有Java操作系统端口。
二、课程图
每一模块的课程都从一张课程图开始,使学员可掌握自己的学习进度。
全课程设置流程图如下所示:
三、各模块概述
各模块概述
-模块1──起步
-模块2──标识符、关键字和类型
-模块3──表达式和流程控制
-模块4──数组
-模块5──对象和类
-模块6──高级语言特性
-模块7──异常
-模块8──建立GUIs
-模块9──AWT事件模型
-模块10──AWT组件库
-模块11──Java基础类
-模块12──JavaApplets介绍
-模块13──线程
-模块14──流式I/O和文件
-模块15──网络
-模块1──起步
本模块概述了Java编程语言的主要特性及Java应用程序,阐述了类和包的概念,并介绍了一些常用Java包。
-模块2──标识符、关键字和类型
Java编程语言与C语言类似,具有许多编程构造。
本模块对这些构造作了一般介绍并讲授了每一构造所要求的一般句法。
此外,还介绍了采用集合数据类型进行数据关联的面向对象的方法。
-模块3──表达式和流程控制
本模块介绍了包括运算符和Java程序控制句法在内的表达式。
-模块4──数组
本模块讲解了如何声明、创建、初始化和拷贝Java数组。
-模块5──对象和类
本模块是在模块2的基础上,对Java对象的概念作了进一步的阐述,包括重载、覆盖、子类和构造函数。
-模块6──高级语言特性
本模块是模块5的继续,它进一步讲解了Java面向对象的编程模块,包括一些新的JDK1.1特性──降级和内部类。
该模块还介绍了在Java开发包JDKTM1.2中新增的收集的概念。
-模块7──异常
本模块为Java程序员提供了一种在运行Java程序时俘获错误的机制,并阐述了预定义异常和用户定义异常。
-模块8──建立GUIs
在Java编程语言中,所有图形用户界面都是建立在框架和面板的概念之上。
本模块介绍了布局管理和容器的概念。
-模块9──AWT事件模型
Java编程语言1.1版的最重要的变化就是将事件送入和送出Java组件的方法的变化。
本模块阐述了JDK1.0和1.1的事件模型的区别,并演示了如何建立小型事件柄(compacteventhandler)的方法。
-模块10──AWT组件库
本模块介绍了用于建立JavaGUIs的抽象窗口工具包(AWT)组件,并演示了JavaAWT组件和1.1事件模型共同工作的方法。
●模块11──Java基础类介绍
本模块重点介绍了JDK1.2的一个重要特性──Java基础类(JFC),阐述了Swing组件和它们的可插入式外观及感觉的体系结构,并介绍了一例基本的Swing应用及JFC的其它特点,例如在二维图形、存取性及拖放(Draganddrop)等方面的应用。
-模块12──JavaApplets介绍
本模块演示了applet和应用程序开发之间的区别,并介绍了JDK1.2的声音增强功能.
-模块13──线程
线程是一个复杂的论题。
本模块阐述了与Java编程语言相关的线程问题,并介绍了一个简单的线程通信和同步传输实例。
-模块14──流式I/O和文件
本模块阐述了既可读写数据又可读写文本文件的类,并介绍了对象流的概念。
-模块15──网络
本模块介绍了Java网络编程包并演示了传输控制协议/Internet协议(TCP/IP)客户──服务器模型。
四、课程目标
完成本课程的学习后,你应该能够:
-描述语言的主要特性
-编译并运行Java应用程序
-理解和使用在线超文本Java技术文件
-描述语言句法元素和构造
-理解面向对象的例子并使用该语言的面向对象特性
-理解并使用异常
-开发图形用户界面
-描述Java技术平台上的用于建立GUIs的抽象窗口工具包
-从GUI输入
-理解事件处理
-描述Swing的主要特性
-开发Javaapplets
-读写文件和其它数据源
-在不使用GUI的情况下,对所有数据源执行输入输出
-理解多线程基础
-开发多线程Java应用程序和applets
-使用TCP/IP和用户数据报协议(UDP)开发客户和服务器程序
五、从各模块中所获得的技能
下表的左侧显示有关的Java应用程序编程技能,右侧的黑格表示出讲解其左侧相应技能的有关模块,而灰格则表示简述其左侧相应技能的有关模块。
Module
SkillsGained
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DescribeKeylanguagefeatures
CompileandrunaJavaapplication
UnderstandandusetheonlinehypertextJavatechnologydocumentation
Describelanguagesyntacticelementsandconstructs
Understandtheobject-orientedparadigmanduseobject-orientedfeatures
Understandanduseexceptions
DevelopaGUI
DescribetheJavatechnologyplatform’sAbstractWindowToolkitfromwhichGUIsarebuilt
Takeinputfromagraphicaluserinterface
Understandeventhandling
DescribethemainfeaturesofSwing
DevelopJavaapplets
Understandthebasicsofmultithreading
DevelopmultithreadedJavaapplicationsandapplets
PerformI/OtoallsourceswithouttheuseofaGUI
Readandwritetofilesandotherdatasources
DevelopJavaclientandserverprogramsusingTCP/IPandUDP
六、课时安排
下表给出了大致的课程进度
ModuleDayDayDayDayDay
12345
AboutThisCourseA.M.
Module1-GettingStartedA.M.
Module2-Identifiers,Keywords,andTypesA.M.
Module3-ExpressionsandFlowControlP.M.
Module4-ArraysP.M.
Module5-ObjectsandClassesA.M.
Module6-AdvancedLanguageFeaturesP.M.
Module7-ExceptionsA.M.
Module8-BuildingGUIsA.M.
Module9-TheAWTEventModelP.M.
Module10-TheAWTComponentLibraryA.M.
Module11-IntroductiontoJFCA.M.
Module12-IntroductiontoAppletsP.M.
Module13-ThreadsA.M.
Module14-StreamI/OandFilesP.M.
Module15-NetworkingP.M.
七、未包括的论题
未包括的论题
-一般编程概念。
本课程不是为从未参与过编程的人员而设置。
-一般面向对象概念。
本课程未包括的论题见上表,由SUNEducationalServices(SES)提供的其它课程包括了上述论题。
-面向对象的概念──见OO-100:
面向对象的技术和概念
-面向对象的设计和分析──见OO-120面向对象的设计和分析
-一般编程概念──见SL-110:
非程序员Java编程
八、如何做好准备?
如何做好准备?
在学习本课程前,你应该已经完成了下列内容的学习:
-SL-110非程序员Java编程
-用C或C++创建编译程序
-用文本编辑器创建并编辑文本文件
-使用WorldWideWeb(WWW)浏览器,如NetscapeNavigatorTM
在学习本课程前,你应该已经完成了下列内容的学习:
-SL-110非程序员Java编程
或能够:
-用C或C++创建编译程序
-用文本编辑器创建并编辑文本文件
-使用WorldWideWeb(WWW)浏览器,如NetscapeNavigatorTM
九、自我介绍:
自我介绍
-姓名
-公司
-职务、职责
-编程经历
-参与本课程学习的原因
-对本课程的预期
现在你已经进入本课程的学习,请互相介绍并填写上面的表格。
十、如何使用本教材
如何使用本教材
-课程图
-相关问题
-页头图
-教程
-练习
-检查你的进度
-思考题
为使你学好本课程,本教材采用了包括下列主要项目的授课模式:
●课程图──每一模块都从内容概述开始,这样你就可以了解该模块在实现整个课程目标中所起的作用。
●相关问题──每一模块的相关问题部分提供给你一些有关该模块的问题供学习者之间进行讨论,并鼓励你思考在Java应用程序编程过程中你的兴趣与该模块内容的关系
●页头图──页头图可帮助你及时而轻松的跟上教师的进度。
它并不是在每一页都出现
●教程──教师将为你提供有关模块的特有信息,这些信息将有助于你掌握做练习所需要的知识和技能
●练习──练习将为你提供测试你的技能和应用所学概念的机会。
本教程中所提供的例题代码亦有助于你完成练习。
●检查你的进度──在这一部分,模块的目标被重新提及,有时是以问题形式出现。
这样,在你进入下一模块之前,就可以检查你是否已完成了目前这一模块所要求达到的目标。
●思考题──具有挑战性的问题有助于你应用所学模块内容或预测待学模块的内容。
十一、图表和印刷体例说明
下列图表及印刷体例代表着不同的含义:
辅助资源──表示可获取辅助参考资料。
讨论──表示此时建议以小组或班级形式进行讨论。
练习目标──表示练习的目标,这个练习适合于正在讨论的内容。
注意──附加重要信息、强调信息、有趣或特殊信息
警告──对数据或机器的潜在损坏
印刷体例
字体Courier系用来表示命令名称、文件名及目录名,同时也表示计算机屏幕输出。
例如:
Usels–altoallfiles.
System%Youhavemail
黑体courierbold系用来表示你打印的字符和数字。
例如:
system%su
Password:
斜体courieritalic系用来表示变量和命令行,它可以被实际名称或值所代替。
例如:
Todeleteafile,typermfilename.
斜体Palatino系用来表示书名、新词或术语或需强调的词。
例如:
ReadChapter6inUser’sGuide.
Thesearecalledclassoptions
Youmustberoottodothis.
第一章起步
本模块对Java编程语言做了一般性描述,包括Java虚拟机、垃圾收集和安全性等。
第一节相关问题
讨论──下列问题与本模块相关
-Java编程语言是一种完整的语言吗?
它是不是仅用于编写Web程序?
-你为什么需要另一种编程语言?
-Java平台是如何在其它语言平台上提高性能的?
第二节目标
完成本模块的学习后,你应该能够:
-描述Java编程语言的主要特性
-描述Java虚拟机的主要功能
-描述垃圾收集是如何进行的
-列举由处理代码安全性的Java平台所执行的三大任务
-定义Class,Package,Applets和Applications
-编写、编译并运行简单Java应用程序
-利用Java技术应用程序编程界面(API)的在线文档来标识Java.lang包的方法。
参考资料
辅助资源──下列参考资料可为本模块所讨论的问题提供更详细的补充
-LindholmandYellin.1997.TheJavaVirtualMachineSpecification.Addison-Wesley.
-Yellin,Frank.Low-LevelSecurityinJava,whitepaper.[Online].Available:
第三节什么是Java编程语言?
什么是Java编程语言
Java是:
-一种编程语言
-一种开发环境
-一种应用环境
-一种部署环境
-句法与C++相似,语义与SmallTalk相似
-用来开发applets,又用来开发applications
Java是:
-一种编程语言
-一种开发环境
-一种应用环境
-一种部署环境
Java编程语言的句法与C++的句法相似,语义则与SmallTalkTM的语义相似。
Java编程语言可被用来创建任何常规编程语言所能创建的应用程序。
在WorldWideWeb(WWW)和能够运行称为applets程序的浏览器的有关介绍中,人们经常提及Java编程语言。
Applets是一种贮存于WWW服务器的用Java编程语言编写的程序,它通常由浏览器下载到客户系统中,并通过浏览器运行。
Applets通常较小,以减少下载时间,它由超文本标识语言(HTML)的Web页来调用。
Javaapplications是一种独立的程序,它不需要任何Web浏览器来执行。
它们是一种典型的通用程序;可运行于任何具备Java运行环境的设备中。
1.3.1Java编程语言的主要目标
Java编程语言的主要目标
提供一种解释环境为
-提高开发速度
-代码可移植性
-使用户能运行不止一个活动线程
-当程序运行时,能动态支持程序改变
提供更好的安全性
设计Java编程语言的主要目标是
提供一种易于编程的语言,从而
Ú消除其它语言在诸如指针运算和存储器管理方面影响健壮性的缺陷。
Ú利用面向对象的概念使程序真正地成为可视化程序
Ú为使代码尽可能清晰合理、简明流畅提供了一种方法
Java编程语言的主要目标
设计Java编程语言的主要目标是
提供一种易于编程的语言
-消除其它语言在诸如指针运算和存储器管理方面影响健壮性的缺陷。
-利用面向对象的概念使程序真正地成为可视化程序
-为使代码尽可能清晰合理、简明流畅提供了一种方法
Java编程语言的主要目标(续)
-为获得如下两点益处提供一种解释环境
Ú提高开发速度──消除编译─链接—装载—测试周期。
Ú代码可移植性──使操作系统能为运行环境做系统级调用
-为运行不止一个活动线程的程序提供了一种方式
-通过允许下载代码模块,从而当程序运行时也能动态支持程序改变。
-为那些保证安全性而装载的代码模块提供了一种检查方法。
Java编程语言的主要目标
下列特性使这些目标付诸实现:
-Java虚拟机(JVM)
-垃圾收集
-代码安全性
Java编程语言的主要目标(续)
精心开发的Java技术体系结构为上述目标的实现提供了保证。
Java的如下特性使这些目标得以实现
-Java虚拟机
-垃圾收集
-代码安全性
1.3.2Java虚拟机
Java虚拟机
-提供硬件平台规范
-解读独立于平台的已编译的字节码
-可当作软件或硬件来实现
-可在Java技术开发工具或Web浏览器上实现
Java虚拟机规范为Java虚拟机(JVM)作了如下定义:
在真实机器中用软件模拟实现的一种想象机器。
Java虚拟机代码被存储在.class文件中;每个文件都包含最多一个public类。
Java虚拟机规范为不同的硬件平台提供了一种编译Java技术代码的规范,该规范使Java软件独立于平台,因为编译是针对作为虚拟机的“一般机器”而做,这个“一般机器”可用软件模拟并运行于各种现存的计算机系统,也可用硬件来实现。
Java虚拟机
JVM为下列各项做出了定义
-指令集(中央处理器[CPU])
-注册集
-类文件格式
-栈
-垃圾收集堆
-存储区
Java虚拟机(续)
编译器在获取Java应用程序的源代码后,将其生成字节码,它是为JVM生成的一种机器码指令。
每个Java解释器,不管它是Java技术开发工具,还是可运行applets的Web浏览器,都可执行JVM。
JVM为下列各项做出了定义
-指令集(相当于中央处理器[CPU])
-注册集
-类文件格式
-栈
-垃圾收集堆
-存储区
Java虚拟机
-由保持适当类型约束的字节码形成代码
-大部分类型检查在编译代码时完成
-每个由SUNTM批准的JVM必须能够运行任何从属类文件
Java虚拟机(续)
JVM的代码格式由紧缩有效的字节码构成。
由JVM字节码编写的程序必须保持适当的类型约束。
大部分类型检查是在编译时完成。
任何从属的Java技术解释器必须能够运行任何含有类文件的程序,这些类文件应符合Java虚拟机规范中所指定的类文件格式。
1.3.3垃圾收集
许多编程语言都允许在程序运行时动态分配存储器,分配存储器的过程由于语言句法不同而有所变化,但总是要将指针返回到存储区的起始位置
当分配存储器不再需要时(存储器指针已溢出范围),程序或运行环境应取消分配存储器。
在C,C++或其它语言中,程序员负责取消分配存储器。
有时,这是一件很困难的事情。
因为你并不总是事先知道存储器应在何时被释放。
当在系统中没有能够被分配的存储器时,可导致程序瘫痪,这种程序被称作具有存储器漏洞。
Java编程语言解除了程序员取消分配存储器的责任,它可提供一种系统级线程以跟踪每一存储器的分配情况。
在Java虚拟机的空闲周期,垃圾收集线程检查并释放那些可被释放的存储器。
垃圾收集在Java技术程序的生命周期中自动进行,它解除了取消分配存储器的要求,并避免了存储器漏洞。
然而,垃圾收集可在JVM实现的周期中,产生意想不到的变化。
1.3.4代码的安全性
概述
下图显示了Java技术的运行环境及其加强代码安全性的方法。
Java源程序文件通过“编译”,在你的感觉中,就好象是将它们从程序员编写的文本文件格式转换成了一组字节码。
字节码被存储在.class文件中。
构成Java软件程序的字节码在运行时被加载、校验并在解释器中运行。
当运行applets时,字节码可被下载,然后由建于浏览器中的JVM进行解释。
解释器具备两种功能,一是执行字节码,二是对底层硬件做适当调用。
在一些使用Java技术的运行环境中,部分校验过的字节码被编译成原始机器码并直接运行于硬件平台。
这就使Java软件代码能够以C或C++接近的速度运行,只是在加载时,因为要编译成原始机器码而略有延迟。
注意--SUNMicrosystemsTM通过采用新的技术,使Java虚拟机的性能已经有了进一步的提高。
这种新型虚拟机被称为HotSpotTM虚拟机,它具备了使Java编程语言能象编译C++一样快速运行的潜力。
HotSpot虚拟机对操作系统具有本地多线程支持能力,而不是虚拟多线程。
因而,HotSpot虚拟机可保证对一个应用程序来说,并不一定有代码才能使用这一能力。
HotSpot技术解决了性能与移植性之间的难题。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 第14章 14