推荐给初级Java程序员的3本进阶书
引言
本文整理了 3 本适合初级 Java 程序员进阶的技术书籍。作者认为,这些书籍对于新手或在校学生尤其有帮助。在完成基础教程的学习并能使用 Java 进行基础编程后,许多开发者往往不知道如何从初级迈向更高的层次。在这个阶段,优秀的书籍能够为初级开发人员提供很好的指引。

1. 《Head First 设计模式》
这本书以引人入胜的方式介绍了 GoF(Gang of Four)常用的 设计模式。仅看封面,很难看出这是一本技术书籍,更不用说书中还介绍了面向对象编程的一些实用技巧。
本书采用了 Kathy Sierra 式的编写风格:虽然她的博客已经关闭,但仍可通过前面的链接阅读到她的一些文章,建议感兴趣的同学读一读。如果你周围有人认为设计模式没有什么用处,这本书或许能够改变他们的看法。
个人而言,我认为经典的 GoF 手册是一个很好的参考,但它并不是专为新手准备的。因此,我强烈推荐在校生(包括那些不清楚组合模式是什么的程序员)阅读此书。书中介绍的设计模式是程序开发中比较基础的编程模式,也是面向对象编程的程序员应该了解和掌握的内容。
接下来要介绍的这本书则更偏向于 Java 语言本身,这也是我日常使用的编程语言。

2. 《Effective Java 中文版》(第二版)
每个 Java 程序员的书桌上都应该放有这本书。让我们先了解一下作者:
Joshua Bloch 是 Google 公司的首席 Java 设计师,也是一位 Jolt 奖获得者。他之前是 Sun 的一位杰出工程师(Distinguished Engineer),也是 Transarc 公司的一个资深系统设计师。Bloch 主导了众多基于 Java 平台的软件系统的设计和实现,包括 JDK 5.0 的功能加强以及获得过奖项的 Java 集合框架的设计实现。他同时也参与编写了《Java 解惑 | Java Puzzlers》和《Java 并发编程实战 | Java Concurrency in Practice》这两本技术书。
就凭"Java 集合框架开发者”这个称号,我们就应该认真听取这位值得尊敬的程序员的建议。这些建议在这本书中被组织成 78 个条目,读者可以按照自己的速度进行阅读:
- 在覆写
equals和hashCode方法时,我们应该遵循什么规则? - 不可变类(Immutable Class)是什么?
- 在特定的情况下,应当选用哪种最相关的异常类型?是运行时异常(Runtime Exception)还是可捕获异常(Checked Exception)?
- 对于一个托管语言(Managed Language,详细请参考 Wiki 介绍),如何在混淆编译时保留(Preserve)类的成员?
上面所有的问题(也包括其他 74 个)都有实用主义者 Joshua Bloch 的详细解释。读完这本书,程序员应该能意识到使用 Findbugs、Checkstyle 这些工具的必要性了。

3. 《Java 并发编程实战》
一年前,我正努力在做 UI 开发工作时(在 Eclipse 插件中使用 SWT/JFace,其他一些项目则使用 Swing),就看了这本书。那时,我想了解如何实现一个快速响应的 UI,从而能给用户更好的使用体验。我知道自己写线程安全的代码是非常复杂的,尽管运行时间长的操作通常是一个独立的线程。UI 开发和多核系统应用开发是学习如何开发线程安全的软件系统的一个很好的理由。
这本书的作者阵容强大,包括:Brian Goetz、Joshua Bloch(又出现这位大牛了,我们刚提到过,还记得吗?)、Doug Lea(java.util.concurrent 包的开发者)、David Holmes、Tim Peierls 和 Joseph Bowbeer。
这本书的风格非常直接。有的代码在非线程安全的环境下表现不错,可一旦到了线程安全的环境下就变得十分危险。接着,这本书介绍了基本的保证线程安全的机制:同步机制、volatile 关键字等。本书还有对 java.util.concurrent 接口的介绍,你可以根据自己的需要来选择适合的并发集合类。
此外,这本书也介绍了程序运行时的错误管理,以及如何测试代码是否是线程安全的。而且书中还提供了说明性的注释(Annotation)(下载),这些注释通过了 FindBugs 的检查!
结语
还有其它推荐吗?
其实还有不少书值得推荐,不过现在我优先讨论这三本。如果你一本都还从没读过,那么我建议你按照本文介绍顺序进行阅读。好啦,你喜欢的技术书籍有哪些呢?
英文原文:coderfriendly
说明
- 时效性提示:本文原文发表于 2009 年,书中提到的《Effective Java 中文版》为第二版(主要涵盖 Java 5/6 特性),目前已有第三版(涵盖 Java 7/8/9 特性)。《Java 并发编程实战》虽为经典,但部分内容基于较早的 Java 版本。建议读者在阅读时结合最新的 Java 版本特性进行考量。
- 链接说明:文中部分外部链接(如亚马逊购书链接、作者博客等)可能因时间久远而失效或跳转,保留原链接以供参考。
版权声明:本文为原创文章,版权归 戴老师的博客 所有,转载请联系博主获得授权。
本文地址:https://1diff.fun/archives/tui-jian-gei-chu-ji-java-cheng-xu-yuan-de-3-ben-jin-jie-shu.html
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。