jvm 强引用 软引用 弱引用 虚引用

还有很多中引用 这只介绍4种引用

        强引用:

                简单的说就是 new 了一个对象 被引用链(GC Roots) 引用的对象是不会被垃圾回收掉的

                比如: Object obj = new Object();  这就是强引用

        软引用:

                没有被GC Roots 所引用就会被垃圾回收。

                当系统内存不足时就会回收掉。

                如果内存足够那么垃圾回收线程是不会回收掉软引用的。

                只要是内存不足就会回收软引用前提是没有被GC Roots 给引用。

         弱引用:

                这个跟软引用大同小异

               当系统内存不足还是内存够用,不论如何都会被垃圾回收

               前提是没有被引用链 (GC Roots )

        虚引用:

               当内存回收时,jvm会讲虚引用加入到引用队列中RefQueue中 然后可以通过使用引用队列(RefQueue)来获取已经被回收的对象 从而减少了系统的压力

               当被虚引用调用的对象被垃圾回收掉时 虚引用就会进入引用队列调用unsafe对象来调用feelmemory方法来释放直接内存 从而减少了很大的压力

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值