Java程序员必读的入门&进阶书单

114 篇文章 0 订阅
106 篇文章 0 订阅

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lZRiIYGZ-1659350372441)(http://static.chayuqing.com/edddeb70713efa2da69e953240a5b3ab.jpg?watermark/1/image/aHR0cDovL3d3dy5pamlhbmRhby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDMv6Zq8MS5wbmc=/dissolve/100/gravity/Center/dx/1/dy/1|imageView2/2/w/100/q/100)]

作者 | 杨晓峰

出处 | 极客时间《Java 核心技术 36 讲》专栏

很多同学在我的专栏里留言想让我推荐一些学习 Java 的书籍,在这里我整理了一些自己在学习和使用 Java 时用过的参考书,把它们分享与你。我认为,书是系统化知识的来源,想要提高 Java 水平还是要多实践、阅读源码、和资深人士交流等,毕竟书籍也很难完全跟上技术和架构的变革,因此我也尽量缩减了书单的长度。

关于夯实 Java 编程基础,我推荐 Bruce Eckel 的《Java 编程思想》(Thinking in Java),这是一本非常有名的经典书籍。这本书的特点是,不仅仅介绍 Java 编程的基础知识点,也会思考编程中的各种选择与判断,包括穿插设计模式的使用,作者从理论到实践意义从不同的角度进行探讨,构建稳固的 Java 编程知识体系。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SPgkfXJw-1659350372444)(http://static.chayuqing.com/d420b806fbc970a7e5b77602a065d366.jpg?watermark/1/image/aHR0cDovL3d3dy5pamlhbmRhby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDMv6Zq8MS5wbmc=/dissolve/100/gravity/Center/dx/1/dy/1|imageView2/2/w/630/q/100)]

如果你完全没有 Java 编程基础,也可以考虑其他的参考书,例如《Java 核心技术》。

当然,这两本书的部分内容已经多少有点过时了,尤其是《Java 编程思想》。例如,目前很少会需要学习 Java 桌面图形类库等,较新的语法和 API 当然也没有包含,我的建议是尽管忽略过时内容,适当补充 Java 新技术的学习。

提到经典,自然也少不了《Effective Java》,这本书的英文第三版已经在国内上市,涵盖了 Java 7 到 Java 9 的各种新特性。严格来说,这本书不算是一本基础书籍,但当你有一定基础后,还是非常建议通读一下的。关于这本书的阅读,我的建议是边学习边回顾,在吸收书中的经验时,多去想想自己在实际应用中是如何处理的。虽然《Effective Java》的具体章节可能是从某个点出发,但可以说都是对 Java、JVM、面向对象等各种知识的综合运用,对于设计和实现高质量的代码很有帮助。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vBNPPLKg-1659350372445)(http://static.chayuqing.com/69d65cf2d981a4da8cac90c7a3abcad2.jpg?watermark/1/image/aHR0cDovL3d3dy5pamlhbmRhby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDMv6Zq8MS5wbmc=/dissolve/100/gravity/Center/dx/1/dy/1|imageView2/2/w/630/q/100)]

《Head First 设计模式》这本书就不用我再费笔墨去介绍了吧,能把设计模式用这种轻松的形式展现本身已经十分不易了,章节之间的联系让你可以反复加深印象,书中生动的表达方式和丰富的习题也让你更容易沉浸其中。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RcIanXO0-1659350372446)(http://static.chayuqing.com/6819c658bc69f96776029c1101c1290f.jpg?watermark/1/image/aHR0cDovL3d3dy5pamlhbmRhby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDMv6Zq8MS5wbmc=/dissolve/100/gravity/Center/dx/1/dy/1|imageView2/2/w/630/q/100)]

这本书非常适合对面向对象和设计模式基础有限的同学。设计模式不是银弹,实践中也莫要为了模式而模式,掌握典型模式,能够举一反三就很好了,就当作是程序员之间沟通的“方言”。

谈过了 Java 基础,接下来聊聊并发和虚拟机的参考书。

《Java 并发编程实战》,作者全是响当当的人物,比如 Brian Goetz,我多次在专栏里引用他的观点,众多强力作者也保证了书的质量。抛开作者光环,这本书的内容全部建立在理论之上,先讲清道理再谈实践,可以真正让你知其然也知其所以然。这本书更加侧重并发编程中有哪些问题,如何来深刻地理解和定义问题,如何利用可靠的手段指导工程实践,并没有过分纠结于并发类库的源码层面。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SJEhdd8u-1659350372447)(http://static.chayuqing.com/00410cc6da99f7f26965e3f9724300ca.jpg?watermark/1/image/aHR0cDovL3d3dy5pamlhbmRhby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDMv6Zq8MS5wbmc=/dissolve/100/gravity/Center/dx/1/dy/1|imageView2/2/w/630/q/100)]

关于这本书,我的学习建议是,尽量充分利用其中提供的样例代码,结合自己的业务实践去深入学习,毕竟这本书的内容有些偏理论,可能并不适合你快速掌握所谓并发“核心”技术。?关于 JVM 的学习,看过专栏的同学肯定都知道,我经常推荐周志明的《深入理解 Java 虚拟机》,这本书可以说是国内最好的 JVM 书籍之一。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dImbCCgZ-1659350372448)(http://static.chayuqing.com/f11d38ac2273b416418c97efb58ed5ca.jpg?watermark/1/image/aHR0cDovL3d3dy5pamlhbmRhby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDMv6Zq8MS5wbmc=/dissolve/100/gravity/Center/dx/1/dy/1|imageView2/2/w/630/q/100)]

关于性能优化,我推荐 Charlie Hunt 和 Binu John 所著的《Java 性能优化权威指南》(Java Performance),也是我上次在直播时向大家推荐的。Java 之父 James Gosling 也力荐这本参考书。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g2zfpJPn-1659350372449)(http://static.chayuqing.com/80ae41e075911cd1c427784a90d6d639.jpg?watermark/1/image/aHR0cDovL3d3dy5pamlhbmRhby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDMv6Zq8MS5wbmc=/dissolve/100/gravity/Center/dx/1/dy/1|imageView2/2/w/630/q/100)]

不过,这本书过于偏重 Solaris 等商业操作系统和相关工具,我建议你在阅读的时候,尽量体会其思路和原理,把这些运用于 Linux 等主流开放平台。

还有一些开源软件和互联网架构相关的图书可以作为扩展阅读,可以参考下面这几本。

《Spring 实战》

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0EEHRE3Y-1659350372450)(http://static.chayuqing.com/001a1e8f963a07a774fbd2f3e7f9f2bf.jpg?watermark/1/image/aHR0cDovL3d3dy5pamlhbmRhby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDMv6Zq8MS5wbmc=/dissolve/100/gravity/Center/dx/1/dy/1|imageView2/2/w/630/q/100)]

可以说 Spring 等相关框架已经成为业务开发的事实标准,系统性地掌握 Spring 框架的设计和实践,是必需的技能之一。

《Netty 实战》

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ljMB5ZDP-1659350372452)(http://static.chayuqing.com/3a5262486ec56bd20f585bd54f13c453.jpg?watermark/1/image/aHR0cDovL3d3dy5pamlhbmRhby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDMv6Zq8MS5wbmc=/dissolve/100/gravity/Center/dx/1/dy/1|imageView2/2/w/630/q/100)]

Netty 在性能、可扩展性等方面的突出表现,已经得到充分验证,作为基础的通信框架,已经广泛应用在各种互联网架构、游戏等领域,甚至可以说,如果没有仔细分析过 Netty,对 NIO 等方面的理解很可能还在很肤浅的阶段。

《Cloud Native Java》

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZicGodsU-1659350372453)(http://static.chayuqing.com/a745e0e6dca477a5639a6bb148d8f874.jpg?watermark/1/image/aHR0cDovL3d3dy5pamlhbmRhby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDMv6Zq8MS5wbmc=/dissolve/100/gravity/Center/dx/1/dy/1|imageView2/2/w/630/q/100)]

Java 应用程序架构处于飞快的演进之中,微服务等新的架构应用越来越广泛,即使不是使用 Spring Boot、Spring Cloud 等框架,系统地学习其设计思想和实践技术,也绝对是有必要的。当然如果你在实践中使用的是 Dubbo 等框架,也可以选择相关书籍进行阅读。

前沿领域的变化非常快,很多风靡一时的开源软件,在实践中逐渐被证明存在各种弊端,或者厂商停止维护。所以这部分的学习,我建议不要盲目追新,最好是关注分布式设计中的问题和解决的思路,做到触类旁通,并且注重书籍之外的学习渠道。

下面两本并不算是 Java 书籍,但 Java 程序员进阶少不了对互联网主流架构的学习,了解分布式架构、缓存、消息中间件等令人眼花缭乱的技术,对于有志于成为架构师的 Java 工程师来说非常有帮助。

《大型分布式网站架构设计与实践》

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9tI0bcpR-1659350372455)(http://static.chayuqing.com/60a413d05b6d14fcd661044fc6c77fd5.jpg?watermark/1/image/aHR0cDovL3d3dy5pamlhbmRhby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDMv6Zq8MS5wbmc=/dissolve/100/gravity/Center/dx/1/dy/1|imageView2/2/w/630/q/100)]

《深入分布式缓存:从原理到实践》

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rjVPLp1Z-1659350372456)(http://static.chayuqing.com/80f06b92a1733888efca05dd4356a1c9.jpg?watermark/1/image/aHR0cDovL3d3dy5pamlhbmRhby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDMv6Zq8MS5wbmc=/dissolve/100/gravity/Center/dx/1/dy/1|imageView2/2/w/630/q/100)]

]

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值