
- JVM
- 垃圾回收
各种引用类型、判断对象存活的算法、垃圾回收算法
- 内存结构
Java内存结构图,堆、方法区、虚拟机栈、本地方法栈、程序计数器
- 内存模型
内存模型产生背景、Java内存模型组成分析、内存间的交互操作、运行规则、volatile变量规则等
- 并发
- 线程池
线程池解决的问题、阻塞队列、线程池架构、任务饱和策略、线程池配置、线程池关闭、常见线程池类型
- Java多线程
线程和进程基本概念、多线程编程面临的问题和解决方案、线程安全、线程协作、线程中断等
- Disruptor
Disruptor介绍,架构设计,高性能原理,使用场景等
- 集合
- Redis
Redis基本介绍、数据类型、持久化机制、缓存过期策略、集群方案、与Memcached比较、缓存穿透、缓存雪崩、缓存热点、缓存一致性、线上问题排查
- Dubbo
RPC介绍、Dubbo特性、架构、负载均衡、集群容错策略
- ZooKeeper
功能与特性、架构设计(高性能、高可用、数据一致性实现原理)、应用场景、作为注册中心缺点分析
- 分布式锁
分布式锁概念、使用场景、基于Redis/ZooKeeper/数据库的分布式锁方案实现与解析
- Netty
Netty基本概念,网络I/O模型,线程模型,基本工作原理,系统架构
涉及概念比较多,建议阅读顺序:数据库要点、MySQL事务、MySQL锁
- 数据库要点
MySQL的Innodb与MyISAM比较、索引、SQL优化、SQL执行流程、主从同步原理等
- MySQL事务
MySQL事务流程和原理、MVCC原理
- MySQL锁
MySQL锁分类,各种锁的作用,加锁原理,加锁分析
- 互联网协议
互联网协议五层协议(应用层、传输层、网络层、链路层、物理层)由来,概念定义、作用的解析
- TCP和HTTP
TCP状态变迁图、TCP相关常见问题概念(三次握手,四次挥手),HTTP相关问题概念解析
- 架构设计方法
架构设计相关基本概念、架构设计的目的、设计原则、架构设计基本设计流程等
- 开源项目学习
学习开源项目常见错误观点解析,学习的层次,学习的方法步骤介绍
- Java服务线上应急
线上服务应急流程,问题解决的思路、技巧,常见工具,命令行工具脚本
个人建立这个库最大的目的是为了成长,梳理脑图只是一个手段,但不是结果,只是一个高效的学习方法。
通过梳理脑图,针对一个模糊的知识点,我会不断提问,问自己这个知识点是怎么,解决了什么问题,有什么优劣,适用场景,以实现高效学习的最终目的。
知识的本质是要解决问题,只有通过把知识一头连接着输入问题,一头连接着输出问题,你才算是学会了知识,现实观察中,很多人,包括以前我自己,也会犯“以为记住知识就是学会知识,用记忆的方法来学习”的错误。
做知识的梳理的时候要关注知识解决的问题,在大脑中形成连接,而脑图,正是这个学习过程的一个高效手段。
此外,通过分享脑图,实现个人较为推崇另外一个学习方式,通过分享知识的方式(例如写博客,写开源项目)来学习(费曼方法),因为在分享中不断去验证知识,加强大脑知识连接,以实现高效学习的目的。