深入理解jvm虚拟机 笔记

时间:2022-12-29 10:34:02

一、类的生命周期

  加载 → 验证 → 准备 → 解析 → 初始化 → 使用 → 卸载

  加载:通过类的全限定名将二进制字节码文件加载到方法区

  验证:验证class文件的字节码符合虚拟机要求,不会危害系统

  准备:为static变量分配方法区的内存并设置初始值

  解析:将常量池的符号引用替换成直接引用

  初始化:执行java代码,静态语句块

 二、gc机制

  java堆分为新生代、老年代、永久代(jdk1.7之前版本);其中,新生代:老年代 = 1:2  (默认值);

  新生代又分为 Eden、From Survivor、To Survivor ; 默认比值为 8 :1:1;

  新生代执行的垃圾回收算法是复制法,将Eden和一个Survivor的可达对象复制到另一个Survivor 中;

  老年代执行的垃圾回收算法是标记-清理法或标记-整理法;标记不可达对象并清理;