JVM垃圾回收的时候,如何确定回收垃圾?是否知道什么是GC Roots?

1、通过枚举根节点做可达性分析,根节点是GC Roots

2、GC Roots的对象有以下四种

2.1、虚拟机栈(栈帧中的局部变量区,也叫做局部变量表)中的引用的对象

2.2、方法区中的类静态属性引用的对象

2.3、方法区中常量引用的对象

2.4、本地方法中的JNI(Native方法)引用的对象

 

以上四种的直接上代码

/**
 * 情况4是线程的start方法
 */
public class GCRootsDemo {
    private byte[]bytes = new byte[1024];
    //情况2:方法区中的类静态属性引用的对象
    private static SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    //情况3:方法去中常量引用的对象
    private static final SimpleDateFormat sdf2 =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    public static  void method(){
        //情况1:这里的t1是方法区栈帧中引用的对象, t1指向new GCRootsDemo()
        GCRootsDemo t1 = new GCRootsDemo();
        System.gc();
    }

    public static void main(String[] args) {
        method();
    }
}

原文链接地址:https://mp.csdn.net/console/editor/html/107825279

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值