再探Java——大纲
1. 循环
2. 类和对象
- weak/soft/phantom reference
- 面向对象的基本特征
3. 异常
4. 集合类
- ConcurrentHashMap
- CopyOnWrite
- CAS/AQS
5. 泛型
6. 反射
7. IO/NIO
- NIO –> 熟读netty的源码
- 熟练IO的各种姿势
8. 并发包
- 线程池
- ThreadLocal
- 无界队列
- 改进锁
- java.util.concurrent包里的类
9. JVM
- 虚拟机优化
- 类加载原理 –> delegate & classloader –> 内存泄漏
- GC的原理 –> 种类+原理 — CMS GC & G1 GC
- 选择合适的GC算法
- 调整Hotspot VM的各generation比例
- 掌握jvm重要参数
- 理解Hotspot的常见结构和名词等
- 性能调优
10. 内存模型
1. mysql
常见的参数设置
存储引擎选择
解常见的索引引擎
怎么设计表—怎么优化sql
怎么根据执行计划调优
分库分表的设计和优化—-读写分离—-垂直与水平拆分
《高性能mysql》
2. redis & mongodb
了解原理 — 调整参数
NoSQL,Queue 的原理、使用场景以及限制
缓存的失效策略
分布式
3. nginx & tomcat
4. rpc
网络协议 序列化技术 SOA
dubbo
5. jms
了解原理
中间件系统和支撑系统
activeMQ & kafka
6. 红黑树
7. 设计模式
8. Spring
动态代理、CGLIB -> 如何生成proxy类/两者异同
略读Spring源码,重点理解关键概念
异常处理 + 事务
9. Mybatis
10. TCP/IP
http 协议 搜索引擎
序列化 –> Google protocol buffer
Java Web
* JDBC
* Servlet
* Webservice
* Spring
* Spring MVC
* Mybatic
DateBase
* MySQL
* Redis
* MongoDB
Manager
* Maven
* Git
- tomcat/jetty
- 设计模式
- 数据结构与算法
- 计算机系统原理
- 网络通信协议
- 开源项目
- 博客/GIT
- Jenkins Nexus Confluence