一、类的生命周期
加载 → 验证 → 准备 → 解析 → 初始化 → 使用 → 卸载
加载:通过类的全限定名将二进制字节码文件加载到方法区
验证:验证class文件的字节码符合虚拟机要求,不会危害系统
准备:为static变量分配方法区的内存并设置初始值
解析:将常量池的符号引用替换成直接引用
初始化:执行java代码,静态语句块
二、gc机制
java堆分为新生代、老年代、永久代(jdk1.7之前版本);其中,新生代:老年代 = 1:2 (默认值);
新生代又分为 Eden、From Survivor、To Survivor ; 默认比值为 8 :1:1;
新生代执行的垃圾回收算法是复制法,将Eden和一个Survivor的可达对象复制到另一个Survivor 中;
老年代执行的垃圾回收算法是标记-清理法或标记-整理法;标记不可达对象并清理;