前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >六、垃圾回收_判断对象是否存活算法_引用计数法详解

六、垃圾回收_判断对象是否存活算法_引用计数法详解

作者头像
梅花
发布2020-09-28 10:59:33
3150
发布2020-09-28 10:59:33
举报
文章被收录于专栏:梅花的学习记录

引用计数法:

  在对象中添加一个引用计数器,当有地方引用对象的时候,引用计数器的值就+1 ,当引用失效的时候计数器的值就 -1

打印垃圾回收的参数

  -verbose:gc

  -XX: +PrintGCDetail

使用程序模拟下图的 对象引用来测试 jdk 1.8 使用的是否是 引用计数法

代码语言:javascript
复制
package com.zuoyan.test01;

public class Main {

    private Object instance;

    private Main()
    {
        byte[] m = new byte[20*1024*1024];
    }

    public static void main(String[] args) {

        Main m1 = new Main();
        Main m2 = new Main();
        m1.instance = m2;
        m2.instance = m1;


        m1 = null;
        m2 = null;

        System.gc();

    }
}

m1 引用 m2 ,m2 引用 m1 将 m1 和 m2 对堆内存的引用置为空,然后进行垃圾回收,判断 m1 m2是否被回收

代码语言:javascript
复制
[GC (System.gc()) [PSYoungGen: 46203K->808K(76288K)] 46203K->816K(251392K), 0.0013100 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[Full GC (System.gc()) [PSYoungGen: 808K->0K(76288K)] [ParOldGen: 8K->661K(175104K)] 816K->661K(251392K), [Metaspace: 3477K->3477K(1056768K)], 0.0050335 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
Heap
 PSYoungGen      total 76288K, used 655K [0x000000076b100000, 0x0000000770600000, 0x00000007c0000000)
  eden space 65536K, 1% used [0x000000076b100000,0x000000076b1a3ee8,0x000000076f100000)
  from space 10752K, 0% used [0x000000076f100000,0x000000076f100000,0x000000076fb80000)
  to   space 10752K, 0% used [0x000000076fb80000,0x000000076fb80000,0x0000000770600000)
 ParOldGen       total 175104K, used 661K [0x00000006c1200000, 0x00000006cbd00000, 0x000000076b100000)
  object space 175104K, 0% used [0x00000006c1200000,0x00000006c12a5498,0x00000006cbd00000)
 Metaspace       used 3484K, capacity 4496K, committed 4864K, reserved 1056768K
  class space    used 385K, capacity 388K, committed 512K, reserved 1048576K

可以看到 下面的结果,每个对象的构造方法创建的byte 就创建了2M左右的数据,但是经过垃圾收集过后,剩余 808k 证明两个对象都被回收了, JDK 1.8 使用的是 parallel

代码语言:javascript
复制
46203K->808K(76288K)]


IDEA 配置JVM 参数的地址
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-08-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档