跳至主要內容

Java 必读经典书籍

Guide计算机书籍约 3678 字大约 12 分钟

Java 基础

《Head First Java》open in new window

《Head First Java》-豆瓣
《Head First Java》-豆瓣

《Head First Java》这本书的内容很轻松有趣,可以说是我学习编程初期最喜欢的几本书之一了。同时,这本书也是我的 Java 启蒙书籍。我在学习 Java 的初期多亏了这本书的帮助,自己才算是跨进 Java 语言的大门。

我觉得我在 Java 这块能够坚持下来,这本书有很大的功劳。我身边的的很多朋友学习 Java 初期都是看的这本书。

有很多小伙伴就会问了:这本书适不适合编程新手阅读呢?

我个人觉得这本书还是挺适合编程新手阅读的,毕竟是 “Head First” 系列。

《Java 核心技术卷 1 + 卷 2》open in new window

《Java 核心技术卷 1》-豆瓣
《Java 核心技术卷 1》-豆瓣

这两本书也非常不错。不过,这两本书的内容很多,全看的话比较费时间。我现在是把这两本书当做工具书来用,就比如我平时写文章的时候,碰到一些 Java 基础方面的问题,经常就翻看这两本来当做参考!

我当时在大学的时候就买了两本放在寝室,没事的时候就翻翻。建议有点 Java 基础之后再读,介绍的还是比较深入和全面的,非常推荐。

《Java 编程思想》open in new window

《Java 编程思想》-豆瓣
《Java 编程思想》-豆瓣

另外,这本书的作者去年新出版了《On Java》open in new window,我更推荐这本,内容更新,介绍了 Java 的 3 个长期支持版(Java 8、11、17)。

毕竟,这是市面上目前唯一一本介绍了 Java 的 3 个长期支持版(Java 8、11、17)的技术书籍。

《Java 8 实战》open in new window

《Java 8实战》-豆瓣
《Java 8实战》-豆瓣

Java 8 算是一个里程碑式的版本,现在一般企业还是用 Java 8 比较多。掌握 Java 8 的一些新特性比如 Lambda、Stream API 还是挺有必要的。这块的话,我推荐 《Java 8 实战》open in new window 这本书。

《Java 编程的逻辑》open in new window

《Java编程的逻辑》
《Java编程的逻辑》

一本非常低调的好书,相比于入门书来说,内容更有深度。适合初学者,同时也适合大家拿来复习 Java 基础知识。

Java 并发

《Java 并发编程之美》open in new window

《Java 并发编程之美》-豆瓣
《Java 并发编程之美》-豆瓣

这本书还是非常适合我们用来学习 Java 多线程的,讲解非常通俗易懂,作者从并发编程基础到实战都是信手拈来。

另外,这本书的作者加多自身也会经常在网上发布各种技术文章。这本书也是加多大佬这么多年在多线程领域的沉淀所得的结果吧!他书中的内容基本都是结合代码讲解,非常有说服力!

《实战 Java 高并发程序设计》open in new window

《实战 Java 高并发程序设计》-豆瓣
《实战 Java 高并发程序设计》-豆瓣

这个是我第二本要推荐的书籍,比较适合作为多线程入门/进阶书籍来看。这本书内容同样是理论结合实战,对于每个知识点的讲解也比较通俗易懂,整体结构也比较清。

《深入浅出 Java 多线程》open in new window

《深入浅出 Java 多线程》在线阅读
《深入浅出 Java 多线程》在线阅读

这本开源书籍是几位大厂的大佬开源的。这几位作者为了写好《深入浅出 Java 多线程》这本书阅读了大量的 Java 多线程方面的书籍和博客,然后再加上他们的经验总结、Demo 实例、源码解析,最终才形成了这本书。

这本书的质量也是非常过硬!给作者们点个赞!这本书有统一的排版规则和语言风格、清晰的表达方式和逻辑。并且每篇文章初稿写完后,作者们就会互相审校,合并到主分支时所有成员会再次审校,最后再通篇修订了三遍。

在线阅读:https://redspider.gitbook.io/concurrent/open in new window

《Java 并发实现原理:JDK 源码剖析》open in new window

《Java 并发实现原理:JDK 源码剖析》-豆瓣
《Java 并发实现原理:JDK 源码剖析》-豆瓣

这本书主要是对 Java Concurrent 包中一些比较重要的源码进行了讲解,另外,像 JMM、happen-before、CAS 等等比较重要的并发知识这本书也都会一并介绍到。

不论是你想要深入研究 Java 并发,还是说要准备面试,你都可以看看这本书。

JVM

《深入理解 Java 虚拟机》open in new window

《深入理解 Java 虚拟机》-豆瓣
《深入理解 Java 虚拟机》-豆瓣

这本书就一句话形容:国产书籍中的战斗机,实实在在的优秀! (真心希望国内能有更多这样的优质书籍出现!加油!💪)

这本书的第 3 版 2019 年底已经出来了,新增了很多实在的内容比如 ZGC 等新一代 GC 的原理剖析。目前豆瓣上是 9.5 的高分,🐂 不 🐂 我就不多说了!

不论是你面试还是你想要在 Java 领域学习的更深,你都离不开这本书籍。这本书不光要看,你还要多看几遍,里面都是干货。这本书里面还有一些需要自己实践的东西,我建议你也跟着实践一下。

类似的书籍还有 《实战 Java 虚拟机》open in new window《虚拟机设计与实现:以 JVM 为例》open in new window ,这两本都是非常不错的!

《实战 Java 虚拟机》-豆瓣
《实战 Java 虚拟机》-豆瓣
《虚拟机设计与实现:以 JVM 为例》-豆瓣
《虚拟机设计与实现:以 JVM 为例》-豆瓣

如果你对实战比较感兴趣,想要自己动手写一个简易的 JVM 的话,可以看看 《自己动手写 Java 虚拟机》open in new window 这本书。

《自己动手写 Java 虚拟机》-豆瓣
《自己动手写 Java 虚拟机》-豆瓣

书中的代码是基于 Go 语言实现的,搞懂了原理之后,你可以使用 Java 语言模仿着写一个,也算是练练手! 如果你当前没有能力独立使用 Java 语言模仿着写一个的话,你也可以在网上找到很多基于 Java 语言版本的实现,比如《zachaxy 的手写 JVM 系列》open in new window

这本书目前在豆瓣有 8.2 的评分,我个人觉得张秀宏老师写的挺好的,这本书值得更高的评分。

另外,R 大在豆瓣发的《从表到里学习 JVM 实现》open in new window这篇文章中也推荐了很多不错的 JVM 相关的书籍,推荐小伙伴们去看看。

再推荐两个视频给喜欢看视频学习的小伙伴。

第 1 个是尚硅谷的宋红康老师讲的《JVM 全套教程》open in new window。这个课程的内容非常硬,一共有接近 400 小节。

课程的内容分为 3 部分:

  1. 《内存与垃圾回收篇》
  2. 《字节码与类的加载篇》
  3. 《性能监控与调优篇》

第 2 个是你假笨大佬的 《JVM 参数【Memory 篇】》open in new window 教程,很厉害了!

常用工具

非常重要!非常重要!特别是 Git 和 Docker。

除了这些工具之外,我强烈建议你一定要搞懂 GitHub 的使用。一些使用 GitHub 的小技巧,你可以看Github 实用小技巧总结open in new window这篇文章。

常用框架

框架部分建议找官方文档或者博客来看。

Spring/SpringBoot

Spring 和 SpringBoot 真的很重要!

一定要搞懂 AOP 和 IOC 这两个概念。Spring 中 bean 的作用域与生命周期、SpringMVC 工作原理详解等等知识点都是非常重要的,一定要搞懂。

企业中做 Java 后端,你一定离不开 SpringBoot ,这个是必备的技能了!一定一定一定要学好!

像 SpringBoot 和一些常见技术的整合你也要知识怎么做,比如 SpringBoot 整合 MyBatis、 ElasticSearch、SpringSecurity、Redis 等等。

下面是一些比较推荐的书籍/专栏。

《Spring 实战》open in new window

《Spring 实战》-豆瓣
《Spring 实战》-豆瓣

不建议当做入门书籍读,入门的话可以找点国人的书或者视频看。这本定位就相当于是关于 Spring 的一个概览,只有一些基本概念的介绍和示例,涵盖了 Spring 的各个方面,但都不够深入。就像作者在最后一页写的那样:“学习 Spring,这才刚刚开始”。

《Spring 5 高级编程》open in new window

对于 Spring5 的新特性介绍的比较详细,也说不上好。另外,感觉全书翻译的有一点蹩脚的味道,还有一点枯燥。全书的内容比较多,我一般拿来当做工具书参考。

《Spring Boot 编程思想(核心篇)》open in new window

《Spring Boot 编程思想(核心篇)》-豆瓣
《Spring Boot 编程思想(核心篇)》-豆瓣

稍微有点啰嗦,但是原理介绍的比较清楚。

SpringBoot 解析,不适合初学者。我是去年入手的,现在就看了几章,后面没看下去。书很厚,感觉很多很多知识点的讲解过于啰嗦和拖沓,不过,这本书对于 SpringBoot 内部原理讲解的还是很清楚。

《Spring Boot 实战》open in new window

《Spring Boot 实战》-豆瓣
《Spring Boot 实战》-豆瓣

比较一般的一本书,可以简单拿来看一下。

MyBatis

MyBatis 国内用的挺多的,我的建议是不需要花太多时间在上面。当然了,MyBatis 的源码还是非常值得学习的,里面有很多不错的编码实践。这里推荐两本讲解 MyBatis 源码的书籍。

《手写 MyBatis:渐进式源码实践》open in new window

《手写MyBatis:渐进式源码实践》
《手写MyBatis:渐进式源码实践》

我的好朋友小傅哥出版的一本书。这本书以实践为核心,摒弃 MyBatis 源码中繁杂的内容,聚焦于 MyBaits 中的核心逻辑,简化代码实现过程,以渐进式的开发方式,逐步实现 MyBaits 中的核心功能。

这本书的配套项目的仓库地址:https://github.com/fuzhengwei/small-mybatisopen in new window

《通用源码阅读指导书――MyBatis 源码详解》open in new window

《通用源码阅读指导书――MyBatis源码详解》
《通用源码阅读指导书――MyBatis源码详解》

这本书通过 MyBatis 开源代码讲解源码阅读的流程和方法!一共对 MyBatis 源码中的 300 多个类进行了详细解析,包括其背景知识、组织方式、逻辑结构、实现细节。

这本书的配套示例仓库地址:https://github.com/yeecode/MyBatisDemoopen in new window

Netty

《Netty 实战》open in new window

《Netty 实战》-豆瓣
《Netty 实战》-豆瓣

这本书可以用来入门 Netty ,内容从 BIO 聊到了 NIO、之后才详细介绍为什么有 Netty、Netty 为什么好用以及 Netty 重要的知识点讲解。

这本书基本把 Netty 一些重要的知识点都介绍到了,而且基本都是通过实战的形式讲解。

《Netty 进阶之路:跟着案例学 Netty》open in new window

《Netty 进阶之路:跟着案例学 Netty》-豆瓣
《Netty 进阶之路:跟着案例学 Netty》-豆瓣

内容都是关于使用 Netty 的实践案例比如内存泄露这些东西。如果你觉得你的 Netty 已经完全入门了,并且你想要对 Netty 掌握的更深的话,推荐你看一下这本书。

《跟闪电侠学 Netty:Netty 即时聊天实战与底层原理》open in new window

2022 年 3 月出版的一本书。这本书分为上下两篇,上篇通过一个即时聊天系统的实战案例带你入门 Netty,下篇通过 Netty 源码分析带你搞清 Netty 比较重要的底层原理。

性能调优

《Java 性能权威指南》open in new window

《Java 性能权威指南》-豆瓣
《Java 性能权威指南》-豆瓣

希望能有更多这 Java 性能优化方面的好书!

O'Reilly 家族书,性能调优的入门书,我个人觉得性能调优是每个 Java 从业者必备知识。

这本书介绍的实战内容很不错,尤其是 JVM 调优,缺点也比较明显,就是内容稍微有点老。市面上这种书很少。这本书不适合初学者,建议对 Java 语言已经比价掌握了再看。另外,阅读之前,最好先看看周志明大佬的《深入理解 Java 虚拟机》。

网站架构

看过很多网站架构方面的书籍,比如《大型网站技术架构:核心原理与案例分析》、《亿级流量网站架构核心技术》、《架构修炼之道——亿级网关、平台开放、分布式、微服务、容错等核心技术修炼实践》等等。

目前我觉得能推荐的只有李运华老师的 《从零开始学架构》open in new window 和 余春龙老师的 《软件架构设计:大型网站技术架构与业务架构融合之道》open in new window

《从零开始学架构》这本书对应的有一个极客时间的专栏—《从零开始学架构》,里面的很多内容都是这个专栏里面的,两者买其一就可以了。我看了很小一部分,内容挺全面的,是一本真正在讲如何做架构的书籍。

事务与锁、分布式(CAP、分布式事务……)、高并发、高可用 《软件架构设计:大型网站技术架构与业务架构融合之道》 这本书都有介绍到。

面试

《JavaGuide 面试突击版》

JavaGuideopen in new window 的面试版本,涵盖了 Java 后端方面的大部分知识点比如 集合、JVM、多线程还有数据库 MySQL 等内容。

公众号后台回复:“面试突击” 即可免费获取,无任何套路。

JavaGuide 官方公众号
JavaGuide 官方公众号