此刻已经步入了21世纪,我们很难想象曾经Java相关的图书是那样的稀少,但这就是Java刚呈现时的环境。当时所有与Java相关的图书根基上都是由Sun公司的几个工程师们所宣布的,好比说Arthur Van Hoff et.al所写的“Hooked on Java”以及Patrick Naughton所写的“The Java Handbook”。
虽然了,这些图书填补了Java的空缺,不外每本书都有3、400页,这些图书都假设读者相识措施,出格是面向工具措施设计。
1996年Cay Horstmann与Gary Cornell出书了名为“Java焦点编程”的图书,这本书有600多页,它没有做任何假定,从新开始传授读者Java,这本书的气势气魄清晰且可读性强,不禁让我们追念起早期Brian Kernighan与Patrick Henry Winston的编程课程。
17年转瞬即逝,Horstmann与Cornell又出书了Java焦点编程第9版。该版共分为两卷,卷1(基本)有974页,卷2(高级特性)甚至到达了1128页。你可以在书中找到有关Java 7(最新的JDK版本)的一切内容,包罗荟萃、泛型、并发以及从JDK的首个版本宣布以来Java的所有特性。
新版的编写气势气魄依然清晰且具有很强的可读性,而且提供了大量的示例,这些示例固然根基但却很重要。显然,作者在建设这些示例时颠末尾大量的思考,示例很是详尽,为读者提供了很有代价的参考。书中充斥了大量的“C++注释”,旨在以Java的方法来指导C++措施员。
卷1首先先容了Java的汗青以及语言设计者的最高诉求(结实、可移植、多线程等等)。然后是一个简捷的上手指南,包罗下载与安装Java语言情况(包罗JDK与Eclipse IDE)的说明。这部门提供了一些靠得住的代码示例,你可以通过一些可视化的Applets来测试安装情况。
接下来先容了最根基的数据范例以及语法、措施布局和节制流,具体表明白BigNumber、BigDecimal与BigInteger。
本栏目
先容完基本内容后,本书又开始具体先容面向工具编程(OOP)。拥有C语言等进程式配景的措施员一般城市以为向OO转变是个较量坚苦的进程。Java焦点编程这本书在这方面做得很是棒。接头首先从一些根基的UML、直观的示例以及Java中的类与工具开始。接下来继承深入到Java气势气魄的OO中,包罗类文件与结构要领。本章最后给出了一些“类设计提示”,这是用于建设精采、可读且可重用代码的最佳实践。
OO接头之后的几章会开始先容担任、接口与内部类,并给出了相应的Java实现。
接下来的4章有300页,是关于图形编程开拓的,包罗主要的Swing组件、字体、利用颜色、处理惩罚鼠标与键盘事件、机关打点器、Applets以及陈设计策,如欣赏器、Java Web Start与JAR文件。我较量失望的是书中并未提及JavaFX,因为JavaFX此刻已经成为Java焦点库的一部门了,而且作为Swing的扩展利用。
再往下的一章先容了异常处理惩罚,显然这里会先容调试能力、日志以及如何利用调试器。后头的一章先容了泛型编程。即即是有履历的Java措施员在这个主题上也会碰着问题,不外先容的进程却长短常清晰的。本书还先容了Java 7“Project Coin”中所引入的新的钻石暗示法。然后开始先容Java Collections与Maps,包罗一些算法,而且扼要先容了老式的Collections与Maps,如Hashtable、Vector与Enumeration。
本书最后通过108页的篇幅从新开始先容多线程。该章以“什么是线程”开始,然后先容“线程状态”,给出一个大度的状态图,先容了通过“同步”举办的转换并接头了竞态条件。接下来先容了Java 5中引入的java.util.concurrent组件。然后先容了Executors与线程池,“同步”组件,通过利用线程来确保Swing UI的响应性接头了SwingWorker的观念。
我认为插手多线程一章是个很好的抉择,而在之前的版本中这一章被放到了卷2中。并发对付所有重要的Java代码来说都是很须要的,并不该该被看成高级特性。然而,我很遗憾地看到关于Streams与Readers的章节被放到了卷2中,因为他们也是基本的主题,卷2在本年3月出书。
自从1995年首次宣布以来Java获得了长足的成长,这不只表此刻表达性方面,周边的生态系统亦是如此。Java焦点编程内容许多但却十分详尽,读起来没有压力,对付措施员新手、来自其他语言的措施员、甚至是高级Java开拓者(想要在手边放一本可以或许清晰揭示Java焦点的各个主题的图书)来说都是一本很是不错的图书。