Jvm 标记对象是否被引用的两种方法

来源:互联网 发布:咫尺网络 微页 编辑:程序博客网 时间:2024/05/29 16:54

1、引用计数:通过保存某个对象的所有引用数,来管理对象。当引用数为0时,就会被回收。

对象(object)内部维护一个计数器(不能小于0),当计数器是0的时候,对象销毁。当线程A创建一个对象,即 new object()时,object引用计数=1,如果我们想把这个object给线程B,首先是给object的引用计数+1,此时object的引用计数=2,然后传递给线程B,B在使用完object之后,将object的引用计数-1,则此时object的引用计数=1。线程A任何时候释放object。任何时候当object的引用计数为0,对象自动释放。

2、对象引用树:相比引用计数,改方法更体现在了“型”上面,数学上有一种“数形结合”的思想。

个人理解:从“元对象”开始遍历该内存是否被引用,如果没有被引用则回收该元对象的内存。


个别名词解释:

  元对象:new 出来的对象;