Java入门之了解JVM(27)

2)可达性分析算法:

即使用一种叫GC Root的对象作为起点,然后进行引用延申分析,当一些无法通过GC Root延申关联的对象就会被标记成为垃圾;

图片源自网络

Java入门之了解JVM

如上图,其中Object5、Object6、Object7就是垃圾,因为GC Root对其是不可达的

可以作为GC Root的对象有以下这些:

虚拟机栈中引用的对象方法区中静态属性引用的对象方法区中常量引用的对象native方法中引用的对象关于对象引用问题

现在知道了JVM使用可达性分析算法来标记垃圾对象后,那么我们在创建对象时,如何更加准确地定义对象的存活时间呢?又或者换句话来说,我们怎样定义对象才能让JVM更又效率的标记出垃圾对象

针对上面的问题,java对引用分为了以下4个级别:

强引用

推荐阅读