十年架构师为你详解24道Jvm面试题,轻松备战金三银四跳槽季(13)

实例数据用来存储对象真正的有效信息(包括父类继承下来的和自己定义的)

对齐填充:JVM要求对象起始地址必须是8字节的整数倍(8字节对齐)

12.Java对象的定位方式

句柄池、直接指针 。

13.如何判断对象可以被回收?

判断对象是否存活一般有两种方式:

  • 引用计数:每个对象有一个引用计数属性 , 新增一个引用时计数加1 , 引用释放时计数减1 , 计数为0时可以回收 。 此方法简单 , 无法解决对象相互循环引用的问题 。

  • 可达性分析(Reachability Analysis):从GC Roots开始向下搜索 , 搜索所走过的路径称为引用链 。 当一个对象到GC Roots没有任何引用链相连时 , 则证明此对象是不可用的 , 不可达对象 。

14.JVM的永久代中会发生垃圾回收么?

推荐阅读