美文网首页
每日一问(九)谈谈Java的垃圾回收机制以及触发时机

每日一问(九)谈谈Java的垃圾回收机制以及触发时机

作者: 我在吉安打螺丝 | 来源:发表于2021-08-04 15:03 被阅读0次

    内存回收机制:就是释放掉在内存中已经没有用的对象,要判断怎样的对象是没用的,有两种方法:
    (1)采用标记数的方法,在给内存中的对象打上标记,对象被引用一次,计数加一,引用被释放,计数就减一,当这个计数为零时,这个对象就可以被回收,但是,此种方法,对于循环引用的对象是无法识别出来并加以回收的,
    (2)采用根搜索的方法,从一个根出发,搜索所有的可达对象,则剩下的对象就是可被回收的,垃圾回收是在虚拟机空闲的时候或者内存紧张的时候执行的,什么时候回收并不是由程序员控制的,可达与不可达的概念:分配对象使用new关键字,释放对象时,只需将对象的引用赋值为null,让程序不能够在访问到这个对象,则称该对象不可达。

    在以下情况中垃圾回收机制会被触发:
    (1)所有实例都没有活动线程访问 ;
    (2)没有其他任何实例访问的循环引用实例;
    (3)Java中有不同的引用类型。判断实例是否符合垃圾收集的条件都依赖于它的引用类型

    相关文章

      网友评论

          本文标题:每日一问(九)谈谈Java的垃圾回收机制以及触发时机

          本文链接:https://www.haomeiwen.com/subject/gueuvltx.html