一、基礎篇
1.1 JVM 核心
- Java 內存模型(JMM)、堆/棧、垃圾回收算法、JVM 參數調優。
- 診斷工具:
jps/jstack/jmap/jconsole、MAT、VisualVM、BTrace、TProfiler、HouseMD。
- 實戰:手寫各類 OOM/StackOverflow 復現腳本,分析 GC 日誌、定位 Full GC、排查響應慢。
1.2 Java 基礎精進
- 閱讀核心類源碼:
String、Integer、HashMap、ArrayList、ThreadLocal、ClassLoader 等。
- 集合框架:遍歷、去重、排序、LRU Cache(
LinkedHashMap)。
- IO/NIO、反射、序列化、引用類型、Annotation、JMS/JMX、泛型擦除、Agent、單元測試。
- 常用工具庫:Apache Commons、Guava、Netty。
1.3 並發編程
- JUC 源碼:
AQS、ReentrantLock、ConcurrentHashMap、ThreadPoolExecutor、原子類、鎖、信號量、Barrier。
- 線程池設計、鎖分類、
synchronized vs Lock、volatile 語義、happens-before、指令重排。
- 經典題:死鎖復現、單例模式線程安全實現、
AtomicInteger vs synchronized 對比。
二、進階篇
2.1 底層知識
- 字節碼結構、
javap 手寫實現、ASM/Javassist/CGLIB 操作字節碼實現 AOP/IOC。
- CPU 緩存(L1/L2/L3)、偽共享、尾遞歸、位運算實現四則運算。
2.2 設計模式實戰
- 動態代理(JDK/CGLIB)、模板方法+策略實現 IOC、無鎖單例、Reactor 模式。
2.3 網絡編程
- RMI/Socket/HttpClient、手寫 HTTP 靜態服務器(緩存、併發、NIO、線程池、Rewrite、遵循開閉原則)。
- Nginx/Apache 搭建、FTP/SMTP 協議實現、CDN/DNS 原理與搭建。
2.4 框架與中間件
- Spring/Spring MVC/MyBatis 核心源碼閱讀,手寫整合項目。
- 應用服務器:Tomcat/Jetty/JBoss 深度使用與調優。
三、高級篇
3.1 編譯原理
- 手寫表達式解析器(類 SQL
sysdate - 1/24)、DSL 過濾 List、JavaScript 風格作用域解析器。
- 工具:JavaCC、ANTLR、AST。
3.2 操作系統與數據存儲
- Linux 熟練、Shell 腳本。
- MySQL 執行計劃、主備、Binlog;NoSQL:Redis/Memcached/LevelDB/HBase/Cassandra/MongoDB/Neo4j。
3.3 大數據生態
- Zookeeper、Solr/ElasticSearch、Storm/Spark、Hadoop(HDFS/MapReduce/Hive/Presto)、Flume/Kafka/Logstash、Mahout。
3.4 網絡安全
- 對稱/非對稱加密(DES/AES/RSA/DSA)、摘要(MD5/SHA1)、SSL/TLS/HTTPS、中間人攻擊、DDoS/CSRF/XSS/SQL注入/Hash碰撞。
- OTP/TOTP/OCRA、Salt、OpenSSL 簽證書部署。
四、擴展篇
- 雲計算/虛擬化、監控、負載均衡、Git/Maven/Gradle、小語種、編碼本質、時間本質。
- 前端:JavaScript 原型/閉包、框架、Node.js、HTML5/AngularJS。
五、必讀經典書籍
《深入理解 Java 虛擬機》、《Effective Java》、《七周七語言》、《Hadoop 技術內幕》、《高性能 MySQL》、《算法導論》、《代碼大全》、《JavaScript 權威指南》等。