深度研究JDK的各种技术细节
打算建立一个JDK网站,将目前JDK的各种重要特性都深入分析一下。希望JDK中各种技术实现细节都可以在这个网站上查到。相关的模块以及阅读顺序如下图所示。
没有将一些内容规划进来,Java语言基本语法太简单,Java框架、中间件等内容太多了,JDK类库资料太丰富了,所以这些内容就暂时不写了。下面就是3个免费部分的目录,如下:
1、字节码增强
字节码增强相关内容如下:
第1篇-字节码增强概述 第2篇-字节码增强的应用 第3篇-字节码增强框架之ASM 第4篇-字节码增强框架之Javassist 第5篇-字节码增强框架之ByteBuddy 第6篇-反射 第7篇-MethodHandle与MethodType 第8篇-Lambda 第9篇-Attach机制 第10篇-JavaAgent 第11篇-字节码增强源代码剖析 第12篇-DIY反编译工具 第13篇-字节码增强经典工具
2、Java性能优化
Java性能优化相关内容如下:
1、基础 第1篇-JDK自带监控及诊断工具 第2篇-常见诊断工具的实现技术 第3篇-JDK自带工具源代码剖析 第4篇-PerfData 第5篇-虚拟机选项 第6篇-Hook 2、JVMTI 第1篇-JVM Tool Interface(JVMTI) 第2篇-JVMTI Agent 第3篇-调试 3、JMX 第1篇-JMX介绍 第2篇-JMX的Notification 第3篇-JMX源代码分析 4、SA 第1篇-SA介绍 第2篇-SA的实现方式 5、栈 第1篇-获取Java调用栈 第2篇-获取本地调用栈 第3篇-jstack 第4篇-async-profiler 第5篇-火焰图 第6篇-使用Java Flight Recorder采集热点 第7篇-使用async-profiler采集热点 6、内存 第1篇-Java内存概述 第2篇-NMT 第3篇-直接内存 第4篇-内存分配热点 7、堆 第1篇-Eclipse MAT工具解读 第2篇-堆导出文件heapdump 8、GC 第1篇-GC概述 第2篇-GC信息采集源码剖析 第3篇-Serial GC日志解读 第4篇-Parallel Scavenge的GC日志解读 第5篇-G1 GC日志解读 9、Crash文件 第1篇-虚拟机崩溃处理 第2篇-虚拟机对crash的处理 第3篇-crash文件解读 第4篇-核心转储文件 10、案例剖析 ...
3、虚拟机学前基础
虚拟机学前基础的相关内容如下:
1、C/C++ 第1篇-宏 第2篇-模板类 第3篇-extern关键字 第4篇-动态分派 第5篇-指针和地址偏移 第6篇-重载运算符 第7篇-RAII 第8篇-对齐 第9篇-C/C++中嵌入汇编语法 第10篇-C++一种巧妙的内存管理方式 第11篇-Arena管理内存 2、Linux 第1篇-C++线程 第2篇-程序调用约定 第3篇-信号 第4篇-大页 第5篇-Linux内存布局 第6篇-Linux内存查看 第7篇-Linux内存使用 第8篇-动态链接库 3、x86寄存器与指令 第1篇-x86通用指令 第2篇-eflags寄存器 第3篇-lock指令 第4篇-SIMD 第6篇-CAS 4、x86机器指令 第1篇-指令格式 第2篇-指令前缀 第3篇-Opcode操作码 第5篇-ModR/M 第6篇-SIB 第7篇-Displacement 第8篇-Immediate 5、x86架构CPU 第1篇-x86寄存器 第2篇-Cache 第3篇-预取 第4篇-NUMA架构 第5篇-内存屏障 6、虚拟机研究工具 第1篇-JITWatch和hsdis 第2篇-C1 Visualizer 第3篇-C2 IdealGraphVisualizer 第4篇-jtreg回归测试 第5篇-JMH 第6篇-HSDB
3个部分的内容都是紧紧围绕着JDK来介绍的,JDK或HotSpot VM涉及不到的基础知识点不会介绍。例如x86架构CPU中介绍预取是因为HotSpot VM有部分源代码解读需要有预取基础,介绍NUMA架构是因为GC有对NUMA架构的支持。
付费部分在今年至少会有3个部分内容完成更新,分别为:
1、Javac前端编译器(内容主要来自于《深入解析Java编译器:源码剖析与实例详解》一书),内容会有少量更新
2、虚拟机基础(内容主要来自于《深入剖析Java虚拟机:源码剖析与实例详解》一书内容),这一章节内容和书比起来,会有许多的更新和增加,增加的部分是虚拟机选项、CMake调试HotSpot VM、CDS、压缩指针等内容,更新主要是尝试让现有的许多内容更深入透彻
3、虚拟机运行,目录已经大概确定,其中涉及到许多复杂的内容,争取早日更新完成。
如果今年能顺利完成如上3个部分内容的更新,接下来更新的是GC的Parallel Scavenge。在虚拟机基础中介绍过Serial GC,这是最简单的一个GC,以这个为基础,Parallel Scavenge不是很难,这个GC仍然是吞吐量的首选,现在仍然比较重要。
下面更新的是G1和C2 ... ,努力更新让大家不要等待太久...