极客时间已完结课程限时免费阅读

周末福利 | 一份Java工程师必读书单

周末福利 | 一份Java工程师必读书单-极客时间

周末福利 | 一份Java工程师必读书单

你好,我是杨晓峰。今天这期周末福利,我整理了几本自己在学习和使用 Java 时用过的参考书,把它们分享与你。在专栏里,有不少同学留言让我推荐一些参考书。另外,我认为,书是个好的系统化知识来源,但更多提高还是来源于实践、阅读源码、技术交流等,毕竟书籍也很难完全跟上技术和架构的变革,另外我也尽量缩减了书单的长度。
关于夯实 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 书籍之一。
我这里并没有单独推荐类似 GC 算法等书籍,它们对于大多数 Java 工程师的价值也许有限。
关于性能优化,我推荐 Charlie Hunt 和 Binu John 所著的《Java 性能优化权威指南》(Java Performance),也是我上次在直播时向大家推荐的。Java 之父 James Gosling,也力荐这本参考书。
但这本书也存在着不足,里面过于偏重 Solaris 等商业操作系统和相关工具,我建议你在阅读的时候,尽量体会其思路和原理,更加侧重于 Linux 等主流开放平台。
还有一些如开源软件和互联网架构相关的图书可以作为扩展阅读,你可以参考下面这几本。
《Spring 实战》
可以说 Spring 等相关框架已经成为业务开发的事实标准,系统性地掌握 Spring 框架的设计和实践,是必需的技能之一。
《Netty 实战》
Netty 在性能、可扩展性等方面的突出表现,已经得到充分验证,作为基础的通信框架,已经广泛应用在各种互联网架构、游戏等领域,甚至可以说,如果没有仔细分析过 Netty,对 NIO 等方面的理解很可能还在很肤浅的阶段。
《Cloud Native Java》
Java 应用程序架构处于飞快的演进之中,微服务等新的架构应用越来越广泛,即使未必是使用 Spring Boot、Spring Cloud 等框架,但是系统的学习其设计思想和实践技术,绝对是有必要的。当然如果你在实践中使用 Dubbo 等框架,也可以选择相关书籍。
前沿领域的变化非常快,很多风靡一时的开源软件,在实践中逐渐被证明存在各种弊端,或者厂商停止维护。所以这部分的学习,我建议不要盲目追新,最好是关注于分布式设计中的问题和解决的思路,做到触类旁通,并且注重书籍之外的学习渠道。
下面两本并不算是 Java 书籍,但 Java 程序员进阶少不了对互联网主流架构的学习,了解分布式架构、缓存、消息中间件等令人眼花缭乱的技术,对于有志于成为架构师的 Java 工程师来说非常有帮助。
《大型分布式网站架构设计与实践》
这本书总结了作者在构建安全、可稳定性、高扩展性、高并发的分布式网站方面的心得。
《深入分布式缓存:从原理到实践》
这本书融合了原理、架构和一线互联网公司的案例实践,值得参考。
下面给入选精选留言的同学送出 15 元学习奖励礼券。专栏即将进入尾声,希望所有订阅的同学能够坚持到底,也欢迎大家留言分享自己学习或面试的心得体会。
分享给需要的人,Ta购买本课程,你将得18
生成海报并分享

赞 15

提建议

上一篇
周末福利 | 谈谈我对Java学习和面试的看法
下一篇
结束语 | 技术没有终点
unpreview
 写留言

精选留言(45)

  • 忆水寒
    2018-07-28
    关于设计模式,我推荐一本书《设计模式之蝉》,我觉得比《Head first设计模式》要好很多。
    共 5 条评论
    151
  • null
    2018-07-28
    看的书越多,自己却越迷茫。总在问自己:为什么我懂得那么少
    共 3 条评论
    92
  • iLeGeND
    2018-07-28
    我竟然都看过
    共 2 条评论
    59
  • 爪哇夜未眠
    2018-07-29
    《Java8 实战》
    30
  • 北风一叶
    2018-08-03
    那本Java虚拟机的前九章看了三遍
    共 3 条评论
    28
  • 孤鹜齐飞
    2018-07-28
    关于看书,我时常不能做到深入。由于工作经验尚浅,对书中所表述的内容不是很懂,但是经过一段时间的积淀,往往能对书中某些部分产生共鸣,所以看书还是要看的,关键在于坚持,慢工出细活。不懂就多看几遍,厚积才能薄发^0^,感谢杨老师分享~
    26
  • tracer
    2018-07-28
    关于设计模式我也向大家推荐一本图解设计模式,真的不错
    共 3 条评论
    19
  • arryontheway
    2018-07-28
    effective java买了第二版还没看呢,第三版就出来了..
    共 1 条评论
    15
  • 蓓岑2015
    2018-08-03
    Head first设计模式这本书太简单了,废话过多,例子一定也不生动,反而觉得很牵强,一个设计模式用十几页篇幅来讲解,看起来很多,其实都是图片,浪费纸张空间,看着恶心牵强的例子,感觉一点都学不会。 我在这里推荐一个人的博客,某度搜索“java_my_life”,应该能搜索到这个人的博客。
    共 1 条评论
    13
  • Phoenix
    2019-07-14
    大型分布式网站架构,深入分布式缓存,这两本书看完了,简直是垃圾,不明白你推荐的理由是什么?400多页的书,一半都是xx软件的安装流程和截图,甚至一个截图占一整页的情况,真是浪费精力又浪费时间
    共 4 条评论
    12
  • 李二木
    2018-07-28
    设计模式这本武功秘籍,有些这招式看过几遍。遇到强敌准备使招时,感觉又忘记了招式。悟性太差啊
    10
  • bills
    2018-07-28
    看留言的数量发现坚持到最后的人不多😄,有些困惑,看书的时候理解的差不多,但到实际的时候找不到切入点,没法融入到实践中,老师能给指点下吗?
    8
  • Page
    2018-08-03
    还有一本书也挺好的《java解惑》里面介绍了Java开发各种问题以及导致的问题的原因,可以验证自己是否对Java掌握透了,得到预期结果。
    8
  • Chrome
    2018-09-29
    重构那本书也很棒……
    6
  • 小馨
    2018-09-12
    再问一下 这些书 有卖二手书的吗,哈哈哈哈哈。
    共 2 条评论
    5
  • 轻歌赋
    2019-02-17
    有个问题,关于书籍方面,老师您是从什么方面了解到合适的书籍清单的呢?

    作者回复: 多看几本就是了,信息如此透明的时代看口碑,还有相比起来吧,老外写的知名著作不太容易失手

    5
  • Len
    2018-07-28
    读专栏,做笔记,一篇没落下,感谢老师分享。
    4
  • talen
    2019-12-19
    深入理解JAVA虚拟机已经有第三版了,建议看看,增加了内容,netty实战比较简单,觉得还是极客课程的好
    3
  • €流年£
    2019-02-04
    坚持不懈的快学完老师的章节了 虽然有些很吃力 但是依旧感觉收获很大

    作者回复: 加油,也说明文章还需要改进,谢谢反馈

    2
  • yien
    2019-01-21
    打算慢慢买齐,大家觉得电子书和纸质的,哪种好些?
    3