

这篇文章推荐了大部分我所读过的优秀书籍，虽然部分可能没看完。答应我，一定要看到最后，看完之后应该不会再纠结要看什么书了。走起！！！

*这篇文章未涵盖计算机基础比如算法和数据结构、数据库、分布式、微服务方面的书籍，这个留在下一篇文章推荐。*

## 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 编程风格指南：** <http://www.hawstein.com/posts/google-java-style.html>

### 软件设计之道

#### 《人月神话》

![](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 使用经验也能看懂。