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收集器
  • 初始标记

  • 并发标记

  • 重新标记

  • 并发清除

Garbage First(G1)收集器

元空间