BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

书评:Java核心编程卷1——基础

| 作者 Victor Grazi 关注 19 他的粉丝 ,译者 张龙 关注 12 他的粉丝 发布于 2013年11月5日. 估计阅读时间: 6 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

现在已经步入了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核心的各个主题的图书)来说都是一本非常不错的图书。

关于本书作者

Cay S. Horstmann 是“Scala for the Impatient”(Addison-Wesley,2012) 的作者,也是“Core JavaServer Faces”第3版(Prentice Hall,2010)的合著者。他是圣何塞州立大学计算机科学系的教授,Java Champion,也经常在各种开发者会议上进行演讲。

 

查看英文原文:Book Review: Core Java Volume 1 - Fundamentals

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

by lone flying

实在是太厚太厚了。。

看到这个标题就进来了 by 华彬 张

对这本书我是有感情的,就像我入行的领路人一样,太经典了,强烈推荐新人们读,物超所值。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT