这篇文章推荐了大部分我所读过的优秀书籍,虽然部分可能没看完。答应我,一定要看到最后,看完之后应该不会再纠结要看什么书了。走起!!! *这篇文章未涵盖计算机基础比如算法和数据结构、数据库、分布式、微服务方面的书籍,这个留在下一篇文章推荐。* ## Java ### 基础 #### 《Head First Java》 ![](images/e7e11e32-a931-4261-804f-9586ec4f8476.png) *Guide的 Java 启蒙书籍了。因为是我学习Java看的第一本书,所以,我对其有不一样的情感。* *ps:我是当时学完了 C语言之后才开始学习 Java 的,刚开始看这本书感觉很轻松有趣,可以说是我学习编程初期最喜欢的一本书了。* 有些人说这本书不适合编程新手阅读?(问号脸) 我个人觉得还是很适合稍微有一点点经验的新手来阅读的,当然也适合我们用来温故 Java 知识点。 > ps:刚入门编程,最好的方式还是通过看视频来学习。 #### 《Java 核心技术卷 1+卷 2》 ![](images/2bb7f878-3514-4f10-99c9-7850318b33a9.png) *Guide拿来当做工具书的两本Java领域的好书!我当时在大学的时候就买了两本放在寝室,没事的时候就翻翻。* 建议有点 Java 基础之后再读,介绍的还是比较深入和全面的,非常推荐。 这两本书的内容很多,全看的话比较费时间,我一般也会用来巩固知识点或者当做工具书参考,是两本适合放在自己身边的好书。 #### 《Java 编程思想 (第 4 版)》 ![](images/3d2e12ad-b92e-4bb5-b330-f515750ff780.png) *这本书Guide第一次看的时候还觉得有点枯燥,那时候还在上大二,看了 1/3就没看下去了。* 大部分人称之为Java领域的圣经(*感觉有点过了~~~*),但我不推荐初学者阅读,有点劝退的味道。稍微有点基础后阅读更好。 这本书到现在我也才看了一半左右,内容确实也比较多,而且稍微有点枯燥,但是比较权威。我一般也是拿来当做工具书参考。 #### 《Java性能权威指南》 ![](images/18f7bbcf-7de7-49f5-b16b-f56b5185370a.png) *希望能有更多这Java性能优化方面的好书!* O'Reilly 家族书,性能调优的入门书,我个人觉得性能调优是每个 Java 从业者必备知识。 这本书介绍的实战内容很不错,尤其是 JVM 调优,缺点也比较明显,就是内容稍微有点老。市面上这种书很少。这本书不适合初学者,建议对 Java 语言已经比价掌握了再看。另外,阅读之前,最好先看看周志明大佬的《深入理解 Java 虚拟机》。 ### 并发 #### 《Java 并发编程之美》 ![《Java 并发编程之美》](images/b4c03ec2-f907-47a4-ad19-731c969a499b.png) *这本书还是非常适合我们用来学习 Java 多线程的。这本书的讲解非常通俗易懂,作者从并发编程基础到实战都是信手拈来。* 另外,这本书的作者加多自身也会经常在网上发布各种技术文章。这本书也是加多大佬这么多年在多线程领域的沉淀所得的结果吧!他书中的内容基本都是结合代码讲解,非常有说服力! #### 《实战 Java 高并发程序设计》 ![《实战 Java 高并发程序设计》](images/0d6e5484-aea1-41cc-8417-4694c6028012.png) 这个是我第二本要推荐的书籍,比较适合作为多线程入门/进阶书籍来看。这本书内容同样是理论结合实战,对于每个知识点的讲解也比较通俗易懂,整体结构也比较清。 #### 《深入浅出 Java 多线程》 ![《深入浅出Java多线程》](images/7001a206-8ac0-432c-bf62-ca7130487c12.png) 这本书是几位大厂(如阿里)的大佬开源的,Github 地址:[https://github.com/RedSpider1/concurrent](https://github.com/RedSpider1/concurrent) 几位作者为了写好《深入浅出 Java 多线程》这本书阅读了大量的 Java 多线程方面的书籍和博客,然后再加上他们的经验总结、Demo 实例、源码解析,最终才形成了这本书。 这本书的质量也是非常过硬!给作者们点个赞!这本书有统一的排版规则和语言风格、清晰的表达方式和逻辑。并且每篇文章初稿写完后,作者们就会互相审校,合并到主分支时所有成员会再次审校,最后再通篇修订了三遍。 ### JVM JVM 这里就先只推荐一本书籍和一个关于 JVM 参数调优的免费教程(你假笨大佬将的)。 #### 《深入理解Java虚拟机(第3版)》 ![](images/20893364-3cc6-4fe5-8cb6-4bed676ce7bd.png) *希望国内能有更多这样的优质书籍出现!加油!💪* 这本书就一句话形容:**国产书籍中的战斗机,实实在在的优秀!** 这本书的第三版去年年底已经出来了,新增了很多实在的内容比如ZGC等新一代GC的原理剖析。目前豆瓣上是 9.6 的高分,🐂不🐂我就不多说了! 不论是你面试还是你想要在 Java 领域学习的更深,你都离不开这本书籍。这本书不光要看,你还要多看几遍,都是干货,里面很多实战内容自己还最好实践一篇。 这里额外推荐一个你假笨大佬的[《JVM 参数【Memory篇】》](https://club.perfma.com/course/438755/list)教程,很厉害了! ![](images/74a29a45-b770-4fd5-8480-c46bd72464a9.png) ### 面试 #### 《JavaGuide面试突击版》 ![](images/c8188444-68ba-4b86-a22e-d3b2bb3565d6.png) *谁看谁说好!哈哈!* Guide自己开源的,涵盖了Java后端方面的大部分知识点比如 集合、JVM、多线程还有数据库MySQL等内容。 在我的公众号后台回复 :“**面试突击**”即可免费获取。 ![我的公众号](images/format,png.png) ### Java 8 #### 《Java 8实战》 ![](images/4fd57829-82a9-4bf4-853a-56bd7413923a.png) *还没用上 Java 8 的可以反思一下了,还没用过 Lambda 也可以反思一下了。* 现在大部分公司至少都用到了 Java 8 , Java 8算是一个里程碑式的版本,提供了很多有用的新特性比如 Lambda、流式处理等等。 这本书是学习 Java 8 新特性很好的选择,它内容包括 Lambda、流和函数式编程等Java8新特性。实战系列的一贯风格让自己快速上手应用起来。 ## 软件质量 ### 代码质量 #### 《重构_改善既有代码的设计》 ![](images/7ab7af22-d9ff-4fa8-9ffb-f5ba73e8b128.png) *程序员必看!* 世界顶级、国宝级别的 Martin Fowler 的书籍,可以说是软件开发领域最经典的基本书之一。目前已经出了第二版,我也在不久前买了第二版。 这本书我觉是每一个程序员都必须要看,并且需要看很多次的! #### 《Effective java 》 ![Effective Java中文版(第3版)](images/s32282160.png) *程序员必看!* 又是一本 Java 领域国宝级别的书,非常经典。这本书主要介绍了在 Java 编程中很多极具实用价值的经验规则,这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。这篇文章能够非常实际地帮助你写出更加清晰、健壮和高效的代码。本书中的每条规则都以简短、独立的小文章形式出现,并通过例子代码加以进一步说明。 #### 《代码整洁之道》 ![](images/5d94f552-5815-4b9e-aed4-623b88273355.png) *程序员必看!* 每个程序员都必须要看看的一本书籍,书中很多实际可体会的例子,可以教你写出更优质代码。 最后再推荐两个相关的文档: - **阿里巴巴 Java 开发手册** :[https://github.com/alibaba/p3c](https://github.com/alibaba/p3c) - **Google Java 编程风格指南:** ### 软件设计之道 #### 《人月神话》 ![](images/8ece325c-4491-4ffd-9d3d-77e95159ec40.png) *主要描述了软件开发的基本定律:一个需要10天才能干完的活,不可能让10个人在1天干完!* 非常值得阅读的一本书籍。看书名感觉的第一眼感觉不像是技术类的书籍。这本书对于现代软件尤其是复杂软件的开发的规范化有深刻的意义。 #### 《领域驱动设计:软件核心复杂性应对之道》 ![](images/7e80418d-20b1-4066-b9af-cfe434b1bf1a.png) 这本领域驱动设计方面的经典之作一直被各种推荐,但是我还来及读。 ## 常用框架 ### Spring/SpringBoot #### 《Spring 实战(第 5 版)》 ![](images/3900e43f-c591-4748-acaf-affcb16d7d9d.png) *比较一般!* 不建议当做入门书籍读,入门的话可以找点国人的书或者视频看。这本定位就相当于是关于 Spring 的一个概览,只有一些基本概念的介绍和示例,涵盖了 Spring 的各个方面,但都不够深入。就像作者在最后一页写的那样:“学习 Spring,这才刚刚开始”。 #### 《Spring 5高级编程(第5版)》 ![](images/e2ed7d6a-1c08-4148-99f9-d284b8a7a4c1.png) *工具人!* 对于Spring5的新特性介绍的比较详细,也说不上好。另外,感觉全书翻译的有一点蹩脚的味道,还有一点枯燥。全书的内容比较多,我一般拿来当做工具书参考。 #### 《Spring Boot编程思想(核心篇)》 ![Spring Boot编程思想(核心篇)](images/s32277130.png) *稍微有点啰嗦,但是原理介绍的比较清楚。* SpringBoot 解析,不适合初学者。我是去年入手的,现在就看了几章,后面没看下去。书很厚,感觉很多很多知识点的讲解过于啰嗦和拖沓,不过,这本书对于SpringBoot内部原理讲解的还是很清楚。 #### 《Spring Boot实战》 ![](images/4b337376-e90d-4fdf-9a95-a3fac328b416.png) 比较一般的一本书,可以简单拿来看一下。 #### 《Spring Boot实战派》 ![](images/c7164eae-8509-4de4-af17-97933fb29f99.png) 这本书使用的Spring Boot 2.0+的版本,还算比较新。整本书采用“知识点+实例”的形式编写。 另外,这本书的干货很多,作者在注意实战的过程中还不忘记对于一些重要的基础知识的讲解。 如果你要学习 Spring Boot 的话,我还是比较推荐这本书的。 ### Netty #### 《Netty实战》 ![](images/f16ae5d5-56a0-4b32-8e84-fb10157f3f0c.png) *Guide学习Netty看的就是这本书籍,RPC框架乞丐版 Guide已经写完,Netty系列也在路上了!* 这本书可以用来入门 Netty ,内容从BIO聊到了 NIO、之后才详细介绍为什么有 Netty 、Netty 为什么好用以及Netty重要的知识点讲解。 这本书基本把 Netty 一些重要的知识点都介绍到了,而且基本都是通过实战的形式讲解。 #### 《Netty进阶之路:跟着案例学Netty》 ![Netty进阶之路:跟着案例学Netty](images/s29925598.png) *深入Netty必看!* 内容都是关于使用 Netty 的实践案例比如内存泄露这些东西。如果你觉得你的 Netty 已经完全入门了,并且你想要对Netty掌握的更深的话,推荐你看一下这本书。 #### 《Netty 入门与实战:仿写微信 IM 即时通讯系统》 ![](images/9b472b41-391d-42de-a210-1457c5810618.png) *质量很高的一个小册!* 通过一个基于 Netty 框架实现 IM 核心系统为引子,带你学习Netty。整个小册的质量还是很高的,即使你没有 Netty 使用经验也能看懂。