首页 > 编程知识 正文

每个平台都有不同的JVM,JDK8方法引用的分类类型

时间:2023-05-03 10:08:13 阅读:130596 作者:2346

(一) jvm内存回收算法一般有两种

1、引用计数法:如果有任何地方引用该对象,则该对象的引用数为1;如果禁用了引用,则为1。 计数器为0的对象不可用。

2、可达性分析法:从几个GC Roots对象开始,从这些节点向下搜索时,找到的路径是参考链(如果存在未连接参考链的对象) 由于可能是相互关联的,因此被确定为可重用对象

想想看。 如果两个对象相互引用,例如objA.instance=objB,objB.instance=objB,则此时两个对象都不可访问,但交叉引用必须使引用计数为零如果我们是GC,能原谅这种不死的存在吗? 不,不是。 因此,引用计数法目前的JVM垃圾收集器中没有采用。 所以jvm是可达性分析法算法

(二)可达性分析算法呢?

从名为3358www.Sina.com/「GCroot”的一系列对象开始,从这些节点开始向下搜索,通过参考链(Reference Chain ),http://www.

(三)在java语言中,GCRoot的对象是什么?

可达性分析算法:java虚拟机堆栈中引用的对象。

当一个对象到GC Root没有任何引用链相连时.方法区域中的类静态属性引用的对象。 (通常是指静态限定的对象,加载类时加载到内存中。 )

或者该对象不是GCRoot对象时.方法区域中的常量引用的对象。

a..本地方法堆栈中的JNI (朴素方法)引用的对象

(四)如何理解上面4种类型的GCroot对象?

b

c(通常指用静态限定的对象,加载类时加载到内存中。 )

d

a.java虚拟机栈中的引用的对象

五:最后注意

六、方法区数据什么时候回收

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。