• 技术文章 >java >java基础

    java中gc判定可回收对象

    小妮浅浅小妮浅浅2021-06-08 09:53:14原创2058

    1、引用计数算法

    在对象中添加引用计数器,在某个地方引用时,计数器值增加1,引用失效时,计数器值减少1,无论何时计数器为0的对象都不能再使用。

    优点是简单,高效,现在的objective-c用的就是这种算法。

    缺点是很难处理循环引用,比如图中相互引用的两个对象则无法释放。

    2、可达性分析算法

    Java采用了可达性分析算法,以解决循环引用问题。

    以GCRoots(每一种具体实现对GCRoots都有不同的定义)为起点,向下搜索引用对象,就能形成一棵引用树,树的节点被视为可达对象,反之则被视为不可达。

    Java语言定义了如下GC Roots对象:

    虚拟机栈(帧栈中的本地变量表)中引用的对象。

    方法区中静态属性引用的对象。

    方法区中常量引用的对象。

    本地方法栈中JNI引用的对象。

    以上就是java中gc判定可回收对象的方法,希望对大家有所帮助。更多Java学习指路:Java基础

    本教程操作环境:windows7系统、java10版,DELL G3电脑。

    专题推荐:java gc
    上一篇:java中Memcached和Redis的对比 下一篇:java垃圾回收有哪些算法

    相关文章推荐

    • java中gc是什么• gc在java中原理分析• java中gc算法的实现• gc日志在java的查看方法• java中gc优化是什么

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网