参考附件:金九银十面试突击班3.md
一、对象的生命周期
创建,应用,不可见,不可达,收集,终结,空间重分配阶段。
二、java对象在JVM内存(运行时数据区)中的布局
对象头、实例数据、对齐填充。
三、对象内存空间的分配
JVM堆内存分为Young区和Old区,Young区又分为Eden区和Survivor区,Survivor区又分为From和To区(也叫S1区和S2区)。新创建的java对象放在Eden区,该区域内存空间不够时会触发一次Minor GC(也叫Young GC),GC一次之后如果还是放不下就在Survivor区域申请内存空间,如果申请不到就在Old区域申请内存空间,如果Old区空间不够需要进行一次Full GC然后再次申请。Survivor区分成两个区的目的是为了解决内存空间不连续的问题,因为垃圾回收会产生空间碎片,通过这两个区域可以来回倒腾来整理内存空间。
四、java虚拟机栈
java虚拟机栈由一个个栈帧组成,栈帧由五个部分组成:局部变量表、操作数栈、动态链接、返回地址、附加信息。