武汉荣世数据通信有限责任公司
洪峰
--------------------------------------------------------------------------------
近来,读者不难发现有关Java的著作正在越来越多地出现在书店的书架上。由于Java在当今计算机工业中所处的重要地位,对于专业的计算机程序员而言,学习Java语言已成为一种重要的职业投资。而对于书店经理而言,假如在购进图书时决策正确,无疑可以为获得良好的销售利润。
根据不完全统计,到1996年底,全世界已经出版了近200种关于Java的著作。1997年,很多出版商还将推出一系列的Java图书。面对如此众多的图书,读者一时可能无所适从。本文将市面上出现的各种Java图书归类,并向您介绍各类中最有代表性的著作,希望这些信息对您选择Java图书有所裨益。
一、您知道什么是Java吗?
Java是由美国SunMicrosystems公司开发的一种编程语言,它可以用来编写在Internet环境中运行的应用程序(当然它还可以用于其他许多场合)。目前它由SunMicrosystems的一个子公司Javasoft继续开发。
初看上去,Java语言与C和C++很相似,但是其实质是不同的。Java既是编译型的语言,又是解释型的语言。它的源代码可以编译成为一种通用的形式,这种形式的代码被称为字节码(Bytecodes),它被Java虚拟机运行。Java虚拟机可以跨Internet移植和解释,并且在多平台上运行。
Java程序常被称为“小应用程序”(Applet)。在Java网络化的编程模式下,这种小应用程序可以被嵌入到WWW的文档页面中,成为一种“可执行的内容”。当然,Java语言还可以编写其他常规的应用程序,它的突出特性之一是它有能力创建小的程序,这些小的程序可以跨网络被复制,并在远程计算机上运行。
目前,Java语言主要用来在Web页面上增加动画和提供交互性。但是,Java语言是一种真正的编程环境,它的应用绝对不会只局限于在Web上提供动态页面。而且许多用户在等待SunMicrosystems为这一语言提供更多的功能。随着时间的推进,我们将会看到用Java语言建立服务器、治理远程系统、在Web上显示复杂的数据库信息,以及开发在网络上供多人参加的游戏程序。Java语言还将是发展Internet商业的主要平台。
实际上,因为Java语言具有可移植性、小的规模、高速度和安全性,它正被人们看成为一套完整的规范和一场革命。正因为如此,目前才史无前例地出现了这样多的Java著作。
二、您在购书之前需要了解什么?
由于Java语言的流行非常迅速,所以书架上有大量介绍其全貌和某些部件的书。一个初学者可能不知道应该买哪一本教程,有经验的程序员也可能难以决定哪一本书最能满足自己的需要。不过,理解以下几个术语将有助于您确定自己的真正需要:
1.JavaCoreAPI
Java应用程序编程接口。像Java这样的高级语言均使用许多例程来存取其他的服务。它包括下面6个包:
java.applet:为创建小应用程序提供必要的元件,包括声音播放资源。
java.awt:提供用户界面元件。
java.io:提供与设备无关的输入、输出流支持。
java.lang:提供支持Java的基础类。
java.net:提供支持联网的类。
java.util:提供实用方法和数据结构的类。
2.Java虚拟机(JavaVirtualMachine)
Java虚拟机是被设计成为一个“CPU”的软件,用以运行经编译的Java代码。它包括单独的Java应用程序和可以被下载并在NavigatorWeb浏览器内运行的小应用程序。理解虚拟机的细节对于调整性能和将Java代码移植到新的计算机上是很重要的。
3.AWT
抽象窗口工具箱。它是指与Java一起发布的六个主要的包中的任何一个。这是一个与平台无关的用于图形用户界面编程的类库的集合。
4.IDE
集成开发环境。为开发人员提供的集成工具集合包括图形化的编辑器、图形化的除错器和可视化的类的浏览器。JavaIDE的例子有:Symantec公司推出的Cafe、Borland的Latte、NaturalIntelligence的Roaster、Microsoft的Jakarta。
5.javascript
除了在名称中出现了Java之外,JavaScript与Java编程语言并没有什么非凡的联系。JavaScript不是SunMicrosystems或Javasoft公司的产品,而是由Netscape为他们的NavigatorWeb浏览器(客户端的JavaScript)和他们的Web服务器产品(服务器端的JavaScript)而开发的。根据Netscape的定义,“JavaScript是一种为整个Internet社团而提出的开放的、免费标准”。Netscape的JavaScript设计人员计划发布一套正式规范和这一核心语言免费的参照实现工具。由于JavaScript已经变得如此流行,因此它已经成了实际上的标准。
三、名著介绍
目前的Java图书大致可划分为教程类、参考资料类、实践类和高级专题类。
1.教程类型
这一类图书的特点是覆盖范围宽,但是不深,如:
(1)EXPloringJavaJava
PatNiemeyerJoshPeck
O′Reilly&Associates
ISBN1-56592-184-4
该教程是为已经理解了计算机编程原理的Java用户而编写的。本书秉承了O′Reilly&Associates公司的NutshellHandbook(丛书的那种实际的、具有手册性质的风格,它全面介绍了Java的基础知识。它将告诉你怎样为你的Web页面快速的开发Java小应用程序,它还提供了大量的高级例子,涉及网络化编程、内容、协议处理程序和多线程的编程。
(2)TheJavaProgrammingLanguage
KenArnoldJamesGosling
Addison?Wesley
ISBN0-201-63455-4
该书是由Java世界的两个要害人物编写的。本书涉及到了Java语言和java.lang、java.io和java.util的绝大部分内容(这些是处理输入/输出、语言类型和系统类的Java核心类库的包)。而本书却很少讨论AWT。本书还提供了一些练习,这是许多其他著作所没有的。
(3)JavaSourcebook
EdAnuff
WileyComputerPublishing
ISBN0-471-14859-8
本书对于新的程序员是一个好的选择。这本书告诉你怎样用Java来创建Web程序。虽然它是一本编程教程,但是许多章都介绍了Java编程的基础知识。
(4)TheJavaHandbook
PatrickNaughton
Osborne/McGraw-Hill
ISBN0-07-882199-1
本书作者是最初的Java开发小组的成员之一,它是一本全面的工具书。它从语言的最基本的东西开始,逐渐进入到Java编程的许多重要方面。初学者可能发现本书与其他注重讨论基础内容的著作(例如JavaSourcebook)一起使用效果会非常好。高级的读者可以发现本书中包含的面向对象编程的原则是非常有用的。
(5)TeachYourselfJavain21Days
LauraLemay&CharlesPerkins
SAMS.net/MacMillanComputerPublishing
ISBN1-57521-030-4
本书具有传统教程的特点:第一星期讨论该语言的基本知识、类等;第二星期讨论所有关于小应用程序的内容:图形、动画、联网等;到了第三个星期,你将接触到高级的主题,如线程、例外和原始代码。本书是为具有一定的编程经验而预备学习Java的读者而编写的。根据大多数书店的反馈消息统计,本书是除了JavainaNutshell之外第二大畅销的Java著作。
(6)JavaNow!
KrisJamsa
JamsaPress
ISBN1-884133-30-4
本书对于从来没有编过程、但想学习Java的人是一本极好的著作。本书可以作为Java培训班的教材。书中的章节清楚的,简短,而且编写得很好。对于初学编程的人员,可以从测试技巧的练习题中获益。无论如何,本书是一本好书。
(7)JustJava
PetervanderLinden
SunSoFTPress/PrenticeHall
ISBN0-13-565839-X
本书是为已经是程序员的读者编写的Java入门读物,可读性很好。除了假定读者具有编程的背景知识之外,该书对读者没有其他任何要求。本书介绍了面向对象的编程技术。
SunSoftPress/PrenticeHall的Java丛书(CoreJava、JavabyExamples、InstantJava、JustJava)中每一本都带有一张同样的光盘,这张光盘含有Solaris、Win32和Mac平台上的Java1.0版本的开发工具包,还有所有的例子、代码和所有其他四本SunSoftPress图书中的小应用程序。
(8)CoreJava
GaryCornell&CayS.Horstmann
SunSoftPress/PrenticeHall
ISBN0-13-565755-5
本书既包括Java的基本内容,又包括了高级专家的建议和编程技巧。有两章的篇幅具体地介绍了面向对象编程技术的基础知识,这对于以前没有用过面向对象编程度技术的程序员是很有帮助的。本书涉及到了几乎所有的Java句法特性,包括VB和C/C++与相应的Java特性的对比。
SunSoftPress/PrenticeHall的Java丛书(CoreJava、JavabyExamples、InstantJava、JustJava)中每一本都带有一张同样的光盘,这张光盘含有Solaris、Win32和Mac平台上的Java1.0版本的开发工具包,还有所有的例子、代码和所有其他四本SunSoftPress图书中的小应用程序。
2.参考手册类型
与入门教程相比,参考手册类型的著作面较窄,但是涉及的内容更深。
(1)JavainaNutshell
DavidFlanagan
O′Reilly&Associates
ISBN1-56592-183-6
本书不仅是最畅销的Java著作,而且是Internet上最被人称道和广为推荐的著作。本书是对Java全面的、系统的介绍,而且是一本快速的参考手册,它包括所有Java的方法和变量的定义表。书中用三章的篇幅向C/C++程序员介绍Java语言。读完这三章内容之后,C/C++程序员就可以开始用Java编写程序。本书还包括了实际的小应用程序例子,介绍怎样完成平滑的动、创建图形用户界面、编写通过网络通信的客户机和服务器程序等。很多程序员发现本书是他们学习Java时唯一需要的著作。它也是Java著作中最全面的单行本参考资料。本书的中译本名为“Java编程深入浅出”,已经于1997年3月出版,读者可以向武汉荣世数据通信有限责任公司订购。
(2)WritingJavaApplets
JohnRodley
TheColiolisGroup
ISBN1-883577-78-0
本书对于C++程序员是一本非常适合的著作。书中涉及到了许多高级的主题,如AWT、类装载器,但没有涉及到Java句法。本书对于已达到了TeachYourselfJavain21Days水平的读者是非常有用的。
(3)TheJavaAPIVolume1-CorePackages
JamesGosling,FrankYellin&TheJavaTeam
Addison-Wesley
ISBN0-201-63453-8
TheJavaAPIVolume2-WindowToolkitandApplets
JamesGosling,FrankYellin&TheJavaTeam
Addison-Wesley
ISBN0-201-63459-7
这两卷参考资料由JavaAPI的设计小组编写,是编写核心Java小应用程序最完整的API文档资料。读者应该注重这两本书包含了可以从Sun的Website中联机得到的相同的信息。
第一卷:核心包描述了Java语言的基础类库。这些类库包括java.lang、java.io和java.util。它们对于每一个Java程序都是基本的通用的类库。第二卷:窗口工具包和小应用程序描述了可以用于创建复杂可视外观的Java应用程序和小应用程序。另外,这一卷还告诉读者怎样创建可嵌入的、能够在网络上安全传输的程序。这些类库包括java.awt、java.awt.image、java.awt.peer和java.applet。
3.实践类型
这一类著作可能有多种形式,但是其共同特点是通过可供用户使用的例子来讨论Java代码和小应用程序。
(1)HookedonJava
ArthurVanHoff,SamiShaio&OrcaStarbUCk
Addison-WesleyDevelopersPress
ISBN10-201-48837-X
本书包括许多小应用程序的实例,书中有几章讨论如何编写小应用程序。书中还包括Java编程的一些教程性质的材料。
(2)DevelopingProfessionalJavaApplets
K.C.Hopson&StephenE.Ingram
SAMS.net/MacMillanComputerPublishing
ISBN1-57521-083-5
这也是一本关于Java的好书。本书的前几章包括了对基本的Java句法的概要介绍(虽然对于初学者学习Java显得不那么充分),其余部分涉及到了高级主题,如AWT、联网和图像。这些章节中的实例绝不可小视。本书中对于图像和图像过滤的讨论是极其出色的。遗憾的是,从根据我手头拿到的版本看,书中讨论HotJava的部分显然已经过时。
4.高级专题类型
这一类著作针对已经把握了Java基础知识的用户讨论极其深入的专题,例如网络、数据库和图形编程等。
(1)JavaDeveloper′sGuide
JamieJaworshi&CaryJardin
SAMS.net/MacMillanComputerPublishing
ISBN1-57521-069-X
有经验的程序员将发现本书对他们很有帮助。本书的特点是很鲜明的,它提供了极好的介绍了怎样使用JavaAWT、内容和协议处理程序等。这些细节是其他书没有提到的,或者只是很浅地提及到。本书附带的光盘包括一些小应用程序和源代码,以及几个平台上的Sun的JDK1.0.1.
(2)GraphicJava:MasteringtheAWT
DavidM.Geary&AlanL.McClellan
ISBN0-13-565847-0
本书针高级的、有经验的程序员,全面地讨论了AWT,包括在AWT上运行的一整套用户界面工具箱。GraphicJavaToolkit(GJT)提供了30多个定做的元件,例如边界、对话框、图形按钮、工具条等。
附带的光盘包含了GJT的全部源代码,以及书中的例子,这些例子可以运行在Solaris、Windows95和WindowsNT等平台上。光盘还包括1.0.2版本的JDK和Symantec公司的Caf*Lite等。
5.推荐的JavaScript读物
(1)JavaScript:TheDefinitiveGuide
DavidFlanagan
O′Reilly&Associates
ISBN1-56592-193-3
β
JavaScript向Web页面提供了具有编程能力的Html扩展。有了JavaScript之后,你可以控制Web浏览器的行为,向Web页面增加动态创建的文本,可以与用户交互HTML表格,甚至控制并与Java小应用程序和Navigator的插件进行交互。
本书的作者就是前面介绍的JavainaNutshell(《Java编程深入浅出》)的作者DavidFlanagan,他对JavaScript进行了深入细致的研究,并发现了JavaScript的β版本中令人灰心的错误,并在书中作了说明。毫无疑问,本书是介绍JavaScript的权威性著作。
(2)DannyGoodman′sJavaScriptHandbook
DannyGoodman
IDGBooksWorldwide,Inc.
ISBN0-7645-3003-8
本书涉及到了JavaScript的大部分特性,书中使用了许多例子。在附录中列有在Internet上的JavaScript资源以及怎样使用本书附带的光盘等。光盘中含有书中的例子代码、分类了的可插入文件和实用工具。
四、发展趋势:
本文提到的著作都将主题集中在核心的Java语言上,可以预见将会有大量讨论Java应用的著作推出,例如O′Reilly&Associates已经或即将推出的其他相关著作有:
TheDefinitiveGuidetoJava
JavaLanguageReference
TheJavaVirtualMachine
JavaFundamentalClassesReference
JavaNetworkProgramming
JavaThreads
JavaGamesProgramming
JavaCommunicationsProgramming
国内有几位作者也编写了一些优秀的Java的著作。在理解上面介绍的内容之后,我相信您会选择适合需要的Java的著作。