JAVA及其相关
-
Java程序设计教程迟丽华Java语言是一种面向对象的网络编程语言,其强大的网络功能是其他语言难以比拟的,Java语言特别适合开发Internet应用程序。由于Java程序具有与硬件无关、与平台无关、可靠性高、安全稳定和支持多线程等特点,在当今的计算机和网络中占据重要的地位。本书通过大量程序实例由浅入深介绍了Java程序设计语言。内容包括Java语言基础、面向对象编程、基础类库、包和接口、图形界面设计、异常处理、多线程技术和网络编程等。本书不仅系统介绍理论,更强调实际运用。书中所有例题都调试通过,每章还附有各种类型的习题,通过例题和习题帮助读者理解Java语言的基本概念和编程技巧。本书可以作为学习Java语言的教材,也可以作为自学用书。 -
Java程序设计简明教程何桥,李肃义主编Java语言是一门很优秀的语言,具有面向对象、与平台无磁、安全、稳定和多线程等优良特性,是目前软件设计中级为强大的编程语言。本书从Java语言的基本特点入手,逐步介绍了Java语言的基本概念和编程方法,并深入介绍了Java的高级特性,内容包括Java语言编程简介、面向对象编程、异常处理、Applet编程、Java中的图形图像、Java中的GUI、多线程、输入输出流和数据库应用等。本书共分为20章,内容详尽,实例丰富,通俗易懂。前10章为理论部分,每章均附有习题,后10章为实验部分,是前10章的配套实验。本教材可以作为高等学校本科生和专科生的教学用书,也可以作为高等学校成人教育的培训教材和教学参考书,还可以供从事微机应用开发工作的科技人员参考使用。 -
Java面向对象程序设计(美)Ralph Morelli著;董永乐等译;董永乐译本书从解决实际问题的角度讲解Java面向对象程序设计,提供了健壮而灵活的问题求解方式,有助于读者了解对象的抽象原则,掌握对象的交互概念以及各种方法的使用。书中首先采用"从对象开始"的方式引导读者,在引入大多数程序设计基本特性和结构化程序设计概念之前,先介绍设计对象和方法的基础知识。本书重点关注问题分解和问题设计,并采用了分而治之和逐步求精的原则。这种方式与大量的习题以及实验题相结合,为读者提供了理论与实践的最佳结合方案。另外,书中也讲解了Java高级特性,如GUI组件(AWT和Swing)、异常、线程、文件和套接字等。全书的组织风格便于教师根据初学者的接受能力和课时安排选讲适当的高级主题。本书适合作为高等院校计算机专业或相关专业的Java程序设计或面向对象程序设计课程的教材,也非常适合专业技术人员作为参考书。译者序任何程序员都应该熟悉Java,无论你曾经是一位系统程序设计大师,还是一位擅长快速原型法的数据库应用程序设计师,或者仅仅是一位刚刚踏入程序设计之门的初级程序员。从最初为嵌入式程序而设计的语言到现在特别适合Internet程序设计的语言,Java已经不可逆转地成为Internet时代的主流程序设计语言之一。本书最令人心动之处莫过于它能给不同的程序员从不同的角度提供帮助。本书没有对读者做任何不合理的假定,而是尽量适合几类读者:初学编程的新手、C/C++程序员以及其他各种伟大或者平凡的语言的使用者。正因为如此,本书非常适合作为一本入门教材。作者把极为广博的知识融入本书,为读者学习Java提供了全面而且实用的指导。在强调面向对象的同时并没有忽视语言细节,通过各种重要提示反复提醒读者应该注意的内容,包括语法、语义、调试和测试等。另外,每章的Java语言小结、Java库类、实验课、自测题以及习题,都有助于读者在学习过程中巩固知识并提高实际编程能力。"从对象开始"使本书免于俗套。确实,它能让一个初学程序设计的新手很快对面向对象这个激动人心的概念有一个总体印象。这也是许多C程序员在转向C++时难过的一关。C++最大的优点在于它既可以是面向对象的,也可以是面向过程的。初看起来,C++提供了从面向过程到面向对象的平滑过渡,但也正是因为这一点,许多C程序员学习C++或者用C++编程达半年以上却仍然未能清楚地理解"面向对象"的真实内涵。本书在深入Java语言的语法与语义细节之前用尽可能浅显的语言和例子清晰而形象地向读者展现了面向对象的概念,使读者在尚未真正开始学习Java之前就能对面向对象程序设计有鲜明的感性认识。而本书的后续内容也一直不遗余力地不断强化面向对象程序设计中的各个关键主题。学完本书,读者真正能够达到一个目标:学会用Java进行面向对象程序设计。本书的另一新颖之处是有配套的Web站点www.prenhall.com/morelli/,其中包括教学的辅助资源以及本书的代码下载。另外,在书中文字以及代码例子中多处涉及了http://starbase.trincoll.edu/,即作者所在的TrinityCollege的网站,从这里同样可以浏览或下载本书的代码。但是,译者尝试后发现,可能由于网站内容的调整,个别代码或链接可能会失效。如果出现这种情况,请尝试采用http://starbase.cs.trincoll.edu/。本书前言、第0章到第9章由董永乐翻译,第10章到第16章由陈康与缪国往初译,附录由吴嫣翻译。陈渝老师修改了初译稿并对全书内容进行了整理和统校,段海新、钱芳、于洁阅读了译稿并提出了宝贵的修改意见。张少华、姜进磊、许超、杨武勇、钱俊、张力也参予了翻译工作,在此一并表示感谢。限于译者水平,译文中的疏漏和错误在所难免,欢迎读者批评指正。前言本书读者对象本书覆盖的内容和采用的讲解方式适用于典型的计算机科学入门(CS1)课程,或者内容稍深的Java语言课程。本书也非常适用于那些转向Java与面向对象编程的专业程序员。本书采用一种"从对象开始"的方法讲述编程与问题求解,既不要求读者有任何编程经验,也不需要读者事先具备任何Java或面向对象编程的知识。第二版的新增内容本书第二版在如下方面有重大改进:●统一建模语言(UML)。UML框图贯穿全书,以帮助阐述面向对象的概念,描述我们开发的Java程序的设计过程。第一版中的许多流程图现在已经用UML框图代替了,同时添加了很多新的UML框图。UML正在迅速发展成为设计面向对象程序的业界标准,所以熟悉它会非常有用。但是,使用UML的主要原因还是出于教学上的考虑,这样更容易介绍和讲授信息隐藏、继承以及多态性等面向对象的概念。●强调面向对象设计。第二版更多地强调了面向对象设计,这种变化大部分体现在开发书中涉及的例子的过程中。重新编写了许多编程例子,以便在深入Java编码细节之前重点关注设计。使用UML框图有助于采用这种方式。●改变了内容的组织结构。根据前一版的评阅者和用户的建议,本书有几章的内容进行了调整。前两章进行了大幅度改写。第0章现在提供了更详细的面向对象的概述,并且介绍了UML的主要特点,这样有助于在深入讨论Java的面向对象实现之前给学生以正确的方向指导。为了强调设计相对于编码的重要性,第1章在介绍Java代码之前重点讲述程序设计与开发。这一章中还包括了对基本的Java语言特性的简要概述。这样,学生们在开始学习具体的Java例子之前就有了很好的总体认识。关于Java语言要素的组织,本书把switch语句的讨论移到了第3章,与其他的选择控制结构一起讨论。本书还改写了第11章,以便在课程中更早、更容易地使用它。为什么从对象开始本书从对象开始讲授Java,早一些给初学者总体印象,让他们有更多的时间来掌握面向对象编程的原理。我第一次在CS1课程中讲授Java时,使用的是讲授C和C++时所用的方法,即从基本的语言特性和结构化编程的概念开始,然后在课程中期的某个时候开始介绍面向对象。这种方法是大家都很熟悉的,因为大多数Java与C++教材都使用这种方法。这种方法的一个问题是很多学生都得不到一个总体印象。他们能弄清楚循环、if-else结构以及算术表达式,但很难把一个编程问题分解成结构良好的Java程序。另外,这种过程化的方法似乎无法利用Java面向对象的强大功能的优势。如果要用对待C或者Pascal的方式来对待它,那么为什么还要讲授面向对象的语言呢?这样也使我想起来当Pascal是流行的CS1课程时的相似情况。当时,初学者最大的障碍就是过程抽象,即学习过程调用与参数传递的基本机制,学习如何将程序设计成一系列过程的集合。"Oh!Pascal!"是我最喜欢的入门书籍,该书采用的就是典型的"从过程开始"的方式。在第1章中讲述了赋值与I/O结构之后,紧接着就在第2章中讲述过程与参数。然后,第3章开始讲述程序设计与组织方式。直到第4章及以后才开始讲述循环、if-else以及其他结构化编程的概念。现在,初学者的主要障碍在于"对象抽象"。新手程序员必须能把程序看成多个相互作用的对象的集合,而且必须学会如何将编程问题分解成多个设计良好的对象。面向对象同时包容了来自Pascal时代的过程抽象与结构化编程的概念。"从对象开始"的讲授方式自顶向下讲清楚了这3个重要的概念。越早介绍对象和类,学生越能更好地掌握面向对象的重要原则。面向对象(OO)是一种基本的问题求解与设计的概念,而不仅仅是另一个应该归入教材(或课程)的中后期的语言细节。如果很晚才介绍OO的概念,就非常容易在课程进度紧张时将其略过。Java是一种非常适合介绍面向对象概念的语言。它的对象模型比C++组织得更好。在C++中,很容易绕过OO的特点并把它当成C来对待。在Java中,有很好的机会来激发关于面向对象的讨论。例如,几乎不可能不讨论继承和多态性就讨论Applet。这样,教师可以用Java的某些基本特点,如Applet,类库和GUI组件,自然而然地引发这些讨论,而不必另外准备一些使用OO概念的例子。主要特点除了"从对象开始"的方法之外,本书还有其他几个重要特点:●统一建模语言(UML)框图。200多个UML框图贯穿全书,用于解释面向对象的概念,并重点关注面向对象设计。使用UML框图有如下几方面的优势。首先,UML框图提供了一个简要描述类和对象的主要特性的可视化方式。读者很容易看到一个对象的属性和方法,它们是私有的还是公共的,这个类或对象与其他的类之间的关系是什么。第二,UML框图为重要的面向对象概念(如继承和多态性)提供了简单的图形模型。一幅图可以替代许多文字,所以除了文字描述之外,UML框图有助于学生们理解这些重要的概念。第三,就其在本书中的使用目的而言,UML理解起来相对容易一些并且非常直观。第0章中用浅显易懂的例子介绍了基本的标记法。最后,UML正在迅速成为业界标准。所以,通过本书熟悉UML可以更好地读懂其他关于Java与面向对象设计的书籍。●CyberPet例子。CyberPet类贯穿全书,作为一个能够运行的例子来阐述并加强重要的概念。CyberPet在第2章中以一种拟人的方式展示了对象的基本特征。每个CyberPet属于一个类(定义),有某个状态(实例变量),能够执行类似吃和睡(实例方法)这样的行为。方法调用用于命令CyberPet吃和睡。在第3章中,着重讲解了定义和使用方法与参数,与CyberPet进行通信。在后续章节中,通过CyberPet阐述了继承、随机性、动画和线程等概念。一些实验和编程练习也在丰富CyberPet的行为并使之更加复杂。●Applet与GUI。Applet与GUI在第4章中首次引入,并在后续章节中一直使用。显然,Applet是学生入门的诱饵并且可以作为一种很好的激励因素。另外,事件驱动编程(event-drivenprogramming)与图形用户界面(GUI)是学生们应该在CS1课程中学习的。我们早已过了那个把命令行界面作为设计应用程序的标准的时代。JavaApplet的另一个优势是它们从根本上讲是面向对象的。要想全部掌握Applet,学生们需要理解基本的OO概念,这也正是直到第4章才讲授Applet的原因。第4章中以一种很好的方式促进了关于继承与多态性的讨论。●配套Web站点。本书设计成和一个包括许多有用资源的配套Web站点配合使用。这些资源包括书中所有例子的Java代码和Java文档(HTML格式),补充的实验与编程作业,自动评分的在线测验以及PowerPoint教案(部分资源为收费使用:编者注)。关于提供给教师的辅助教学资源,详见本书末尾的"教学支持说明"。●问题求解方法。全书采用问题求解教学方法,共有13个完整地开发好的"实例分析",以及其他用于阐述这种问题求解过程的大量例子。●自测题。全书包括200多个自测题,答案在每章最后给出(位于章末习题之前)。●章末习题。全书一共提供了400多个章末习题,其中还有很多标明为"难题"。采用本书作为教材的教师可以得到包含习题答案的教师手册(详见本书末尾的"教学支持说明")。●编程、调试与设计技巧。本书包含了近400个单独标记的"技巧"(编程技巧、调试技巧、高效设计原则以及Java语言规则),言简意赅地给出了关于编程与设计的有用信息。●"实验课"小节。从第1章开始,每一章都包含实验课内容,非常适合有实验环节的CS1课程。对于那些没有实验环节的CS1课程,这些小节也可以用于准备编程作业,作为课堂上的演示或者作为其他形式的实践作业。书中的每个实验在配套的Web站点上都有补充资源和讲义,还提供了可供选用的实验作业。●"Java库类"小节。从第1章开始,每一章都介绍了一个或多个来自JavaAPI(ApplicationProgrammingInterface)的库类。在前面的几章中,这些小节用来介绍编写简单程序所需的工具,如I/O类与方法。在后面的几章中,一些小节用来介绍有用的选读内容,如用于格式化数字输出的NumberFormat类,另外一些用来介绍程序例子和实验课中涉及的基本GUI组件。●"面向对象设计"小节。从第1章开始,每一章都有一个关于面向对象设计的小节,强调并详述继承、多态性与信息隐藏之类的重要概念。表1为那些希望强调面向对象设计的教师提供了应该讲授的章节的清单。●"Java语言小结"小节。介绍语言特性的几章中都包含了这个小节,以总结这些语言特性的基本语法和语义。表1有关面向对象的章节主题章节什么是面向对象0.7节UML概述0.8节面向对象的设计过程1.2节对象:定义、创建和使用第2章方法:与对象通信第3章继承:toString()方法第3章,"面向对象设计"小节Applet中的继承与多态性4.2节至4.4节继承与多态性:ToggleButton第4章,"面向对象设计"小节信息隐藏第5章,"面向对象设计"小节结构化编程概念第6章,"面向对象设计"小节抽象类:Cipher第7章,"面向对象设计"小节多态性:多态排序第8章,"面向对象设计"小节(续表)主题章节模型-视图-控制器架构第9章,"面向对象设计"小节继承与多态性:Spider/Fly类13.6节通用Client/Server类15.7节抽象数据类型:List类第16章,"面向对象设计"小节内容组织从总体上讲,全书可以划分成三个部分。第一部分(第0章到第4章)介绍面向对象的基本概念,包括对象、类、方法、参数传递、信息隐藏、继承以及多态性。虽然这几章的重点在于面向对象而非Java的语言细节,但也都包含"Java语言小结"小节,总结了涉及到的语言要素。在第1章至第3章中,给学生提供了从最初的想法构造Java程序的基本程序块。虽然就控制结构与数据类型而言,在这个阶段的程序功能很有限,但其重点在于如何构造对象,以及如何通过方法调用和参数传递与其他对象交互。第二部分(第5章到第8章)重点关注其余语言要素,包括数据类型和操作符(见第5章)、控制结构(见第6章)、字符串(见第7章)和数组(见第8章)。当学生们理解了面向对象程序的基本结构与框架之后,讲授这些语言特点相对而言会容易一些。第三部分(第9章到第16章)讲解了各种高级内容,包括图形用户界面(见第9章)、图形(见第10章)、异常(见第11章)、递归(见第12章)、线程(见第13章)、文件(见第14章)、套接字和网络(见第15章)以及数据结构(见第16章)。教师可以根据学生的兴趣有选择地讲解这几章的内容。表2中的课程提纲取材于作者的一学期CS1课程(一学期为13周,加上一个不上课的阅读周)。表2一学期的课程安排周主题章1面向对象,UML第0章程序设计与开发第1章2~4对象和类定义第2章方法和参数第3章选择结构(if-else)5Applet编程第4章继承6数据类型与操作符第5章7~8控制结构(循环)第6章结构化编程9字符串处理(循环)第7章10数组处理第8章11递归第12章12高级内容(GUI)第9章13高级内容(异常)第11章高级内容(线程)第13章注意,这几章高级内容并不需要按顺序讲解。递归(见第12章)可以和循环(见第6章)一起讲,甚至可以在循环之前讲。递归这一章包括一些使用字符串、数组和绘制算法(分形)的例子,以及一些标准数值算法(阶乘)的例子。讲解递归的另一种方法是和字符串(见第7章)、数组(见第8章)以及图形(见第10章)一起讨论,这样就可以同时讲解递归和循环迭代。异常(见第11章)也可以早一些讲。这一章的前几节中的例子使用了简单的算术运算符和基本的for循环。如果单独介绍这些语言要素,可以紧接在第3章之后讲解异常。在有关高级内容的那几章中,有些例子用到了Applet(见第4章)和GUI(见第9章),所以这些章节在第10章(关于图形)、第13章(关于线程)、第14章(关于文件)以及第15章(关于套接字和网络)之前讲较为理想。然而,第16章(关于数据结构)与其他高级内容的讲解可以独立于Applet和GUI。图1给出了书中各章的主要依赖关系。 -
Java 2程序设计技能百练宁书林,李凯,许新龙编著本书以实例形式讲解了Java2的功能和技巧。全书共分为七大部分;第一部分是初级界面篇,讲解面向对象的知识和Java2的初级应用,要求读者能够制作出简单的用户界面;第二部分是中级界面篇,讲解对象的生命周期概念,并且讲解界面的布局知识,要求读者能够制作出中等难度的用户界面,并且能够深入理解对象的生命周期概念;第三部分是高级界面篇,讲解消息监听和消息传递的原理,要求读者能够根据视窗应用的知识制作出高级用户界面;第四部分是网络篇,从简单的网络应用讲解入手,然后逐一讲解网络协议和网络层的概念,使读者掌握Java2的网络程序的设计方法;第五部分是特效篇,着重讲解线程的概念和运行原理,要求读者掌握与线程相关的大量细节,掌握Java 2中处理图像的效果,学会绘制界面图形和制作动画效果;第六部分是游戏篇,着重讲解软件工程设计方法,要求读者能够站在一个较高的角度去规划一个比较复杂的程序设计,能够很好地把现实世界与信息世界联系起来。第七部分是数据库应用篇,讲解通过JDBC和JDBC-ODBC桥访问关系型数据库的方法。本书既可以作为Java初学者的入门之作,也可以作为学成者的实践参考,更可以作为高手们的研究资料。 -
Java编程艺术(美)Herbert Schildt,(美)James Holmes著;邓劲生翻译;邓劲生译本书代码示例易懂有趣,设计思想独特,使您受益匪浅!——TimHarris(Java培训师,美国)一本伟大的书!值得每位有品味的Java程序员阅读和珍藏。——DavidM.Williams(系统架构师,澳大利亚)很酷的一本书,从中您可以学到很多在其他Java图书中无法学到的“酷”信息,例如基于AI和Internet的程序开发,都非常棒!——ChrisBosworth(资深程序员,美国)本书深入浅出地介绍了Java语言本身的优雅特性和强大功能,并结合编程语言解释器、网络编程、界面绘图、人工智能等多方面的实例解说,使读者能够尽快克服对Java的神秘感,真正进入Java编程世界。——熊节(CSDN专栏作者、中国)本书不同于其他介绍Java的书。其他的书多半介绍Java语言的基础知识,但本书揭示的是如何将Java应用于计算领域中最为有趣和实用(有时还是神秘)的编程任务中。书中充分展示了Java语言的强大性、多样性和优美性,从而展现了Java编程设计的艺术性。 -
Java语言程序设计实验指导杨昭,孙友等编著本书为《Java语言程序设计教程》(雷学生主编)的配套教程,主要用于上机实验指导。全书共包括11个实验,涉及到Java语言程序设计最主要的内容。主要包括:Java语言基础实验、数组与控制语句、类与面向对象程序设计、继承、多态与重载、包与接口的使用、异常处理、多线程编程、网络编程以及选做实验JsP编程等。在本书附录部分,给出了Java的参考编程规范和HTML语法参考。本书主要适合于Java 2的初学者和具有一定Java基础的程序开发人员。 -
Java数据结构(美)homas A.Standish著;刘颖,朱剑平等译Thomas A.Standish以一种全新的视角介绍了数据结构和算法基础。Standish相信Java提供了一种机会来重新审视学科的内容,这种新的开发语言带来了新的挑战。例如,尽管Java语言没有显式的指针,但本书仍然提供了指针算法,有助于学生们形象化地理解这种主要的数据结构。Standish清晰的表述帮助读者将各种数据结构联系在一起。诸如模块化、抽象级别、效率和权衡等核心思想在本书都集成在一起,目的是合并许多实质性的概念并揭示其底层的统一和联系。本书重点: ●第2章和附录A介绍了面向对象编程的基础知识,以便以前没有学过Java的学生们可以快速上手; ●早在第4章便谨慎地介绍了递归,有助于学生们掌握这种最富挑战性的概念。 ●第5章介绍了模块化和数据抽象的概念,附录C中介绍了关键的软件工程的概念和技巧 ●每章最后都包含一个名为“陷阱”的小节,可以帮助学生们识别并避免潜在的危险。 -
Java基础教程耿祥义编著Java语言具有面向对象、与平台无关、安全、稳定和多线程等优良特性,是目前软件设计中极为强大的编程语言。Java语言不仅可以用来开发大型的应用程序,而且特别适合Internet的应用开发。尤其是JavaSwing 推出之后,不仅使Java的功能更加强大,而且使Java具备了“处处可用”的特点,Java已成为网络时代最重要的语言之一。本书以通俗易懂的语言,循序渐进地向读者介绍了Java语言编程的基础知识。针对较难理解的问题,所列举例子都是由简到繁,便于读者掌握Java编程技巧。全书分为12章,分别讲解了Java语言简介,基本数据类型和数组、运算符、表达式和语句、类、对象和接口、常用实用类、常用组件及事件处理、建立对话框、类型和数组、运算符、表达式和语句、类、对象和接口、常用实用类、常用组件及事件处理、建立对话框,Java Applet基础、图形与图像、Java多线程机制、输入输出流及Java网络的基本知识等内容。本书适合初学编程或初学Java语言的读者使用,也可作为高等院校相关专业的教材。 -
Java平台组件开发(美)Stuart Dabbs Halloway著;韩宏志译Java不仅是一种面向对象语言,也是一个面向组件的平台。作为一个成功的平台,Java提供诸多强大的功能。本书详细讨论了使用Java平台开发组件的优缺点,分析Java平台的一些核心功能,如类加载、反射、串行化、与本机程序的交互操作和代码生成等技术。通过本书的学习,您不仅可了解到如何有效地开发Java程序,同时也可了解到如何有效地部署Java组件,以充分利用Java提供的所有特性,创建灵活的、可重用的二进制组件,定义在运行时可安全可靠地连接二进制组件所需的服务。本书主要内容:·使用和维护类加载器·通过反射创建动态和通用服务·控制对象的串行化表示形式·加载和使用本机代码组件·扩充Java类格式以添加自定义服务·通过代码生成机制实现自动开发本书重点强调对Java程序的部署,以便于读者充分利用Java一些强大但尚未推广开的重要特性。本书前言本书详细讨论了Java平台面向组件的特性,分析类加载、反射、串行化、本机交互操作及代码生成等技术。本书对“组件”的定义独特新颖:组件是一个独立的生产和部署单元,可与其他组件结合,以组装应用程序。对象和组件是不同的概念。对象表示问题域的实体,而组件是被安装解决方案的原子成分。但对象与组件互为补充,正确的设计应兼顾二者。Java是备受开发者推崇的现代开发平台,提供了创建类和组件所需要的基础结构。Java提供封装、继承和多态性,以支持面向对象的编程等重要功能。Java还提供加载器和各种类型信息,以支持组件。本书将围绕组件阐述如何有效使用Java的组件基础结构。Java加载器在运行时定位、加载和连接组件。用Java加载器您可以做如下工作。●部署细粒度组件●根据需要动态加载组件●从网络上的其他计算机加载组件●从自定义存储库加载组件●创建存在于多个虚拟机的移动式代码代理●导入非Java组件的服务加载器管理组件间的二进制边界。在分布式应用程序和多组件供应商环境中,加载器用于定位和连接所有兼容的组件。类型信息描述一些代码单元的功能。在某些开发环境中,类型信息仅存在于源代码。而在Java中,类型信息不单纯是一种源代码,还是编译类的内在部分,可在运行时通过编程接口使用。因为Java类型信息从不被“编译掉”,所以加载器使用它在运行时验证类之间的链接。在应用程序编程中,类型信息的作用如下。●串行化Java对象的状态,以便在另一虚拟机上重建对象●在运行时创建动态代理,以提供可用于任何接口的通用服务●将数据转换为另一种表示形式,以与非Java组件交互操作●将方法调用转换成网络消息●在Java和XML之间转换,XML是企业系统的新通用语言●使用应用程序专用元数据为组件添加注释通过类型信息,可使原本需要手动编码的任务自动实现。此外,类型信息还有助于组件与未来平台的兼容。读者对象为了解Java应用程序的整个生存期,不仅要考虑对象,还要考虑组件。本书讨论作为组件平台的Java的核心功能:类加载器,反射,串行化,以及与其他平台的交互操作。本书适用于在Java中设计、开发或部署大量应用程序的读者。在阅读本书前,应了解Java语法的基本知识,并具有一些用Java编写面向对象程序的经验。本书并未特别介绍高级Java技术,如远程方法调用(RemoteMethodInvocation,RMI)、企业JavaBean(EnterpriseJavaBean,EJB)、JINI、Java服务器页(JavaServerPage,JSP)、servlet或JavaBean。但蕴涵的主题是这些技术的重要基础。通过学习本书介绍的组件服务,可以理解这些高级技术的构建原理,从而有效地加以应用。安全性也是组件开发和部署的一个重要方面。由于篇幅所限,本书未对此做过多介绍。要详细了解Java平台上的安全性,请参见[Gon99](见本书最后的参考书目)。本书内容全书分三部分。第1章简要介绍了组件,第2章到第6章解释Java平台上的加载器和类型信息。第7章显示这些服务的更高级使用。第1章介绍面向组件的编程。不仅在编译时,而且在部署和运行时建立组件的关联。本章提出组件编程的关键问题,并将这些问题与后续章节中讨论的Java平台服务联系起来。在学习本书时,建议您首先阅读第1章,之后可以按自己安排的顺序阅读其他章节。第2章讨论如何使用类加载器和解决类加载故障。类加载器用于控制代码加载,并在同一进程中创建代码间的命名空间边界。通过类加载器,可在运行时运态加载代码,甚至可以从其他计算机加载。类加载器命名空间允许单个Java虚拟机中有同一个类的多个版本。使用类加载器,可在不关闭虚拟机的情况下重新加载更改的类。本章将介绍如何使用类加载器,类加载器委托模型如何创建命名空间,如何解决类加载故障,以及如何有效控制引导类路径、扩展路径和类路径。第3章介绍Java类型信息。Java以二进制类格式保存类型信息。这意味着,即使在编译Java程序后,仍可访问字段名、字段类型和方法签名。在运行时可通过反射访问类型信息,可使用类型信息来构建能为其他任何对象添加功能的通用服务。本章将讨论动态调用、动态代理、包反射和自定义属性的用法;还将讨论反射性能。第4章讨论Java串行化如何使用反射。串行化是一个很好的通用服务示例。不必预先了解类格式的任何知识,串行化可以跨越时间和空间,将代码和状态从一个虚拟机移至另一个虚拟机。学习本章您可以了解到:串行化格式如何嵌入其类型信息样式,如何自定义表示形式;如何扩展默认串行化,如何用自定义外部化代码完全替换,如何调整串行化,以随代码的演变来处理类的多个版本;如何验证反串行化到应用程序的对象,以及如何用指令注解串行化对象,以查找正确的类加载器。第5章返回到类加载器主题,讨论如何实现自定义类加载器。尽管标准类加载器在大多数应用程序中占据主导地位,但自定义类加载器的作用亦不容忽视。通过自定义类加载器,可在加载类时转换类代码。这些转换包括解密,添加性能监视指令,或甚至在运行时新建类。本章将介绍如何将自定义类加载器绑定到Java安全体系结构,如何编写自定义类加载器,如何编写可自定义加载类(以及其他任何类型资源)方式的协议处理程序。第6章介绍Java本机接口(JavaNativeInterface,JNI)。JNI是控制Java代码与在其他环境中编写的组件之间边界的基本方式。Java和本机编程样式存在较大差异,类加载、类型信息、资源管理、错误处理和数组存储的方式等都存在显著区别。Java提供一组低级别工具,将Java对象显示给平台本地代码,和将平台本地代码显示给Java对象。本章介绍如何使用JNI应用程序编程接口(API)实现Java和本机编程样式之间的转换。JNI存在诸多不足,为此,本书编排了附录A以介绍更高级的方法。第7章讨论使用Java元数据自动创建源代码或字节码。生成代码是一种高性能重用策略,因为您只用生成在运行时需要的准确代码路径。本章首先介绍JSP和EJB,将此作为自动生成代码的已有应用程序示例,然后介绍在自己的程序中生成代码的一些观点。附录A返回到交互操作主题。在第7章介绍的代码生成技术的基础上,附录A介绍如何在Java和另一组件平台Win32/COM之间创建交互操作层。本章以Jawin开放源库为例,阐释如何为Win32对象生成Java占位程序,或由Java占位程序生成Win32对象。示例代码、Web站点和反馈除非特别声明,本书所有示例代码都是开放源代码,可从Web站点http://staff.Develop.com/halloway/compsvcs下载。除非特别声明,书中代码都在Java2SDK1.3版本中经过编译和测试。大多数代码也可用于SDK1.2、1.3和1.4版;若出现特例,本书将列出一个到适当SDK版本的特定引用。欢迎您对本书提出评论、更正和反馈意见,请将电子邮件发送到stu@develop.com。 -
Java网络高级编程殷兆麟适用:本专科生适用专业:计算机科学与技术项目:null
