1. 基础
主要就是 Java 基础,Java 基础很多,但是重点主要是并发包、JVM和集合类这三个地方。
· 并发包我找到了一个大图,配置大图看源码并配合下的书复习,基本并发问题都会搞定。
推荐书籍:
Java并发编程的艺术作者:方腾飞,魏鹏,程晓明
深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)
2. 框架
说来说去框架就 SSM 了,所以主要看一下 Spring 和 MyBatis 的源码就可以了,不仅仅要理解基本的概念,同时需要理解原理,比如 Spring 的启动加载顺序,请求的处理原理,AOP 的原理,还有一个重要的一点就是对于设计模式的理解,把自己学的设计模式都在框架中找到他的实现方式,深入思考它的作用,对面试帮助很大。比如 Spring 中都使用了什么设计模式,为什么这么用?
3. 数据库
数据库包括最常用的三大类,Redis、MySQL、Elasticsearch,分别做缓存,存储和搜索,从他们的底层数据结构出发,了解他们的实现原理和基本的分布式方式。
推荐书籍:
Redis设计与实现 作者:黄健宏
深入理解MySQL核心技术 作者:[美]帕奇维
4. 分布式
分布式是一个太大的话题了。它包括消息中间件,RPC 框架,限流,缓存,降级,幂等,CAP 等等知识,这个如果你没有这方面的经验通过看书也是很难补上来的。所以这个地方还是推荐你尝试在自己当前的环境中落地这些技术,然后寻找最佳答案。