系列四、GC垃圾回收【四大垃圾算法-引用计数法】

一、概述

        Java中,引用和对象是有关联的,如果要操作对象则必须要用引用进行。因此判断一个对象是否可以被回收,很显然一个简单的办法就是通过引用计数来判断一个对象是否可以被回收。简单来讲就是给对象中添加一个引用计数器,每当一个地方引用它,计数器的值就加1,每当一个引用失效时,计数器的值就减1。任何时刻当计数器的值为零的对象,就是不可能再被使用的,那么这个对象就是可以回收的对象。但是,主流的Java虚拟机里面都没有使用这种算法,最主要的原因就是就是它很难解决对象之间的相互循环引用的问题。

二、案例代码

/**
 * @Author : 一叶浮萍归大海
 * @Date: 2023/11/17 11:21
 * @Description: 引用计数算法垃圾回收
 * 设置VM Options
 *      -Xms10m -Xmx10m -XX:+PrintGCDetails
 */
public class ReferenceCountGC {

    /**
     * 这个成员唯一的作用就是占用一点内存
     */
    private byte[] bigSize = new byte[1024 * 1024 * 2];
    Object instance = null;

    public static void main(String[] args) {
        ReferenceCountGC objectA = new ReferenceCountGC();
        ReferenceCountGC objectB = new ReferenceCountGC();
        objectA.instance = objectB;
        objectB.instance = objectA;

        objectA = null;
        objectB = null;

        System.gc();
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值