关于夯实 Java 编程基础,我推荐 Bruce Eckel 的《Java 编程思想》(Thinking in Java),这是一本非常有名的经典书籍。这本书的特点是,不仅仅介绍 Java 编程的基础知识点,也会思考编程中的各种选择与判断,包括穿插设计模式的使用,作者从理论到实践意义从不同的角度进行探讨,构建稳固的 Java 编程知识体系。 如果你完全没有 Java 编程基础,也可以考虑其他的参考书,例如《Java 核心技术》。 当然,这两本书的部分内容已经多少有点过时了,尤其是《Java 编程思想》。例如,目前很少会需要学习 Java 桌面图形类库等,较新的语法和 API 当然也没有包含,我的建议是尽管忽略过时内容,适当补充 Java 新技术的学习。 提到经典,自然也少不了《Effective Java》,这本书的英文第三版已经在国内上市,涵盖了 Java 7 到 Java 9 的各种新特性。严格来说,这本书不算是一本基础书籍,但当你有一定基础后,还是非常建议通读一下的。关于这本书的阅读,我的建议是边学习边回顾,在吸收书中的经验时,多去想想自己在实际应用中是如何处理的。虽然《Effective Java》的具体章节可能是从某个点出发,但可以说都是对 Java、JVM、面向对象等各种知识的综合运用,对于设计和实现高质量的代码很有帮助。 《Head First 设计模式》这本书就不用我再费笔墨去介绍了吧,能把设计模式用这种轻松的形式展现本身已经十分不易了,章节之间的联系让你可以反复加深印象,书中生动的表达方式和丰富的习题也让你更容易沉浸其中。 这本书非常适合对面向对象和设计模式基础有限的同学。设计模式不是银弹,实践中也莫要为了模式而模式,掌握典型模式,能够举一反三就很好了,就当作是程序员之间沟通的“方言”。 谈过了 Java 基础,接下来聊聊并发和虚拟机的参考书。 《Java 并发编程实战》,作者全是响当当的人物,比如 Brian Goetz,我多次在专栏里引用他的观点,众多强力作者也保证了书的质量。抛开作者光环,这本书的内容全部建立在理论之上,先讲清道理再谈实践,可以真正让你知其然也知其所以然。这本书更加侧重并发编程中有哪些问题,如何来深刻地理解和定义问题,如何利用可靠的手段指导工程实践,并没有过分纠结于并发类库的源码层面。 关于这本书,我的学习建议是,尽量充分利用其中提供的样例代码,结合自己的业务实践去深入学习,毕竟这本书的内容有些偏理论,可能并不适合你快速掌握所谓并发“核心”技术。关于 JVM 的学习,看过专栏的同学肯定都知道,我经常推荐周志明的《深入理解 Java 虚拟机》,这本书可以说是国内最好的 JVM 书籍之一。 关于性能优化,我推荐 Charlie Hunt 和 Binu John 所著的《Java 性能优化权威指南》(Java Performance),也是我上次在直播时向大家推荐的。Java 之父 James Gosling 也力荐这本参考书。 不过,这本书过于偏重 Solaris 等商业操作系统和相关工具,我建议你在阅读的时候,尽量体会其思路和原理,把这些运用于 Linux 等主流开放平台。 |
|