JVM
JVM启动流程
JNI调用本地方法
public static native int sum(int a,int b)
- javah 生成函数头文件
- C/C++ 实现头文件的函数,并创建动态连接库
- system.load(生成的动态连接库)
内存管理
内存区域划分
方法区
垃圾回收机制
对象存活判定算法
引用计数法
可达性分析算法
最终判定
finalize 对象被回收时会使用的方法,一个对象只可以进行一次finalize方法,第二次调用时必定会被回收
垃圾回收算法
Minor GC、Major GC、Full GC
分代收集机制
FROM区TO区每经历一轮都会GC年龄+1,大于15就进入老年区
空间分配担保
标记-清除算法
标记-复制算法
新生区
标记-整理算法
老年区
垃圾收集器实现
Serial收集器
ParNes收集器
Parallel Scavenge/Parallerl Old
CMS收集器
初始标记
并发标记
重新标记
并发清除