Java核心技术栈思维导图
一、JVM(Java虚拟机)
1. 内存模型
1.1 运行时数据区
- 堆(Heap)
- 方法区(Method Area)
- 虚拟机栈(VM Stack)
- 本地方法栈(Native Method Stack)
- 程序计数器(Program Counter Register)
1.2 垃圾回收机制
- 垃圾回收算法
- 标记-清除
- 复制算法
- 标记-整理
- 分代收集
- 垃圾收集器
- Serial
- Parallel
- CMS
- G1
- ZGC
1.3 内存分配策略
- 对象优先在Eden分配
- 大对象直接进入老年代
- 长期存活对象进入老年代
- 动态对象年龄判定
- 空间分配担保
2. 类加载机制
2.1 类加载过程
- 加载(Loading)
- 验证(Verification)
- 准备(Preparation)
- 解析(Resolution)
- 初始化(Initialization)
2.2 类加载器
- 启动类加载器(Bootstrap ClassLoader)
- 扩展类加载器(Extension ClassLoader)
- 应用程序类加载器(Application ClassLoader)
- 自定义类加载器(Custom ClassLoader)
2.3 双亲委派模型
- 工作原理
- 打破双亲委派
3. 性能调优
3.1 监控工具
- jps
- jstat
- jmap
- jstack
- VisualVM
- JConsole
3.2 调优参数
- 堆内存设置
- 垃圾收集器选择
- 线程栈设置
- 方法区设置
二、集合框架
1. Collection接口
1.1 List接口
- ArrayList
- LinkedList
- Vector
- Stack
1.2 Set接口
- HashSet
- LinkedHashSet
- TreeSet
1.3 Queue接口
- PriorityQueue
- ArrayDeque
- LinkedList
2. Map接口
2.1 HashMap
- 数据结构
- 扩容机制
- 线程安全性
2.2 LinkedHashMap
- 有序性实现
- 访问顺序
2.3 TreeMap
- 红黑树实现
- 排序功能
2.4 ConcurrentHashMap
- 分段锁机制
- 并发控制
3. 工具类
3.1 Collections
- 排序方法
- 同步包装
- 不可变集合
3.2 Arrays
- 数组操作
- 排序搜索
三、多线程
1. 线程基础
1.1 线程创建
- 继承Thread类
- 实现Runnable接口
- 实现Callable接口
1.2 线程状态
- NEW
- RUNNABLE
- BLOCKED
- WAITING
- TIMED_WAITING
- TERMINATED
1.3 线程控制
- sleep()
- yield()
- join()
- interrupt()
2. 线程安全
2.1 同步机制
- synchronized关键字
- volatile关键字
- Lock接口
2.2 原子操作
- AtomicInteger
- AtomicLong
- AtomicReference
2.3 线程通信
- wait()/notify()
- Condition接口
- BlockingQueue
3. 并发工具
3.1 线程池
- ThreadPoolExecutor
- ScheduledThreadPoolExecutor
- Executors工厂类
3.2 并发集合
- ConcurrentHashMap
- CopyOnWriteArrayList
- BlockingQueue
3.3 同步器
- CountDownLatch
- CyclicBarrier
- Semaphore
- Exchanger
四、Spring生态
1. Spring Framework
1.1 核心容器
- IoC容器
- Bean管理
- 依赖注入
1.2 AOP编程
- 切面编程
- 动态代理
- 事务管理
1.3 数据访问
- JDBC支持
- 事务管理
- ORM集成
1.4 Web开发
- Spring MVC
- RESTful支持
- 文件上传
2. Spring Boot
2.1 自动配置
- 条件注解
- 自动配置原理
- 自定义配置
2.2