Java 基础

  • 《Head First Java》:轻松有趣,这本书适合编程新手阅读呢

  • 《Java 核心技术卷 1 + 卷 2》:有点 Java 基础之后再读,介绍的还是比较深入和全面的,非常推荐。内容很多,全看的话比较费时间。可以当做工具书来用,当做参考!

  • 《Java 编程思想》:这本书的作者去年新出版了《On Java》,更推荐这本,内容更新,介绍了 Java 的 3 个长期支持版(Java 8、11、17)。这是市面上目前唯一一本介绍了 Java 的 3 个长期支持版(Java 8、11、17)的技术书籍。

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

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

Java 并发

  • 《Java 并发编程之美》:适合用来学习 Java 多线程的,讲解非常通俗易懂,作者从并发编程基础到实战都是信手拈来。另外,这本书的作者加多自身也会经常在网上发布各种技术文章。这本书也是加多大佬这么多年在多线程领域的沉淀所得的结果吧!他书中的内容基本都是结合代码讲解,非常有说服力!

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

  • 《深入浅出 Java 多线程》:这本书的质量也是非常过硬!有统一的排版规则和语言风格、清晰的表达方式和逻辑。在线阅读:https://redspider.gitbook.io/concurrent/

  • 《Java 并发实现原理:JDK 源码剖析》:这本书主要是对 Java Concurrent 包中一些比较重要的源码进行了讲解,另外,像 JMM、happen-before、CAS 等等比较重要的并发知识这本书也都会一并介绍到。不论是你想要深入研究 Java 并发,还是说要准备面试,你都可以看看这本书。

JVM

书籍

R大在豆瓣发的《从表到里学习 JVM 实现》这篇文章中也推荐了很多不错的 JVM 相关的书籍

视频

  • 《JVM 全套教程》:尚硅谷的宋红康老师的课程,内容非常硬,一共有接近 400 小节。 课程的内容分为 3 部分:
  1. 《内存与垃圾回收篇》
  2. 《字节码与类的加载篇》
  3. 《性能监控与调优篇》

常用工具

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

IDEA

Maven

  • Maven:强烈建议学习常用框架之前可以提前花几天时间学习一下Maven的使用。(到处找 Jar 包,下载 Jar 包是真的麻烦费事,使用 Maven 可以为你省很多事情)。相关阅读:Maven 核心概念总结

Git

  • Git:基本的 Git 技能也是必备的,试着在学习的过程中将自己的代码托管在 Github 上。相关阅读:Git 核心概念总结

Docker

  • Docker:学着用 Docker 安装学习中需要用到的软件比如 MySQL ,这样方便很多,可以为你节省不少时间。相关资料:《Docker - 从入门到实践》

Github

除了这些工具之外,一定要搞懂 GitHub 的使用。一些使用 GitHub 的小技巧,你可以看Github 实用小技巧总结这篇文章。

常用框架

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

Spring/SpringBoot(重要)

  • AOPIOC 这两个概念。
  • Spring 中 bean 的作用域与生命周期
  • SpringMVC 工作原理详解等等知识点
  • SpringBoot 和一些常见技术的整合也要会,比如 SpringBoot 整合 MyBatis、 ElasticSearch、 SpringSecurity、Redis 等等。

书籍

  • 《Spring 实战》:不建议当做入门书籍读,入门的话可以找点国人的书或者视频看。这本定位就相当于是关于 Spring 的一个概览,只有一些基本概念的介绍和示例,涵盖了 Spring 的各个方面,但都不够深入。

  • 《Spring 5 高级编程》:对于 Spring5 的新特性介绍的比较详细,也说不上好。另外,感觉全书翻译的有一点蹩脚的味道,还有一点枯燥。全书的内容比较多,可当做工具书参考。

  • 《Spring Boot 编程思想(核心篇)》稍微有点啰嗦,但是原理介绍的比较清楚。

  • 《Spring Boot 实战》:比较一般的一本书,可以简单拿来看一下。

MyBatis

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

Netty

  • 《Netty 实战》:这本书可以用来入门 Netty ,内容从 BIO 聊到了 NIO、之后才详细介绍为什么有 Netty、Netty 为什么好用以及 Netty 重要的知识点讲解。这本书基本把 Netty 一些重要的知识点都介绍到了,而且基本都是通过实战的形式讲解。

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

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

性能调优

《Java 性能权威指南》:O’Reilly 家族书,性能调优的入门书,性能调优是每个 Java 从业者必备知识。这本书介绍的实战内容很不错,尤其是 JVM 调优,缺点也比较明显,就是内容稍微有点老。市面上这种书很少。这本书不适合初学者,建议对 Java 语言已经熟悉了再看。另外,阅读之前,最好先看看周志明大佬的深入理解Java虚拟机

网站架构

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

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

面试

《JavaGuide 面试突击版》:JavaGuide 的面试版本,涵盖了 Java 后端方面的大部分知识点比如 集合、JVM、多线程还有数据库 MySQL 等内容。