jvm四种引用类型

本文详细介绍了Java中四种引用类型:强引用、软引用、弱引用和虚引用。强引用是默认的引用方式,不会被GC回收,除非设置为null。软引用常用于缓存,当内存不足时会被回收。弱引用在GC启动时总会被回收,常用于ThreadLocal防止内存泄露。虚引用不直接获取对象,而是配合队列在GC时通知,用于管理堆外内存,例如NIO的DirectByteBuffer。
摘要由CSDN通过智能技术生成

一、强引用:

正常的new出对象被引用指向就是强引用。可直接通过引用操纵对象。gc不会回收被强引用指向的对象,除非引用等于null

二、软引用

new出SoftReference在它的构造方法里嵌套别的对象

在这里插入图片描述

1、m指向sr强引用,sr对象指向字节数组软引用。每次gc并不会主动清理软引用,只有当有其他强引用进来,并且堆区空间不够了则才会被清理。可以通过引用.get方法获取嵌套的对象

2、作用:用于缓存,把一些经常用的设为软引用(让SoftReference里嵌套要用到的东西),这样它就不会被gc回收掉,可以被经常使用。而且当内存不够时,它可以随时被其他强引用干掉

三、弱引用

new出WeakReference在它的构造方法里嵌套别的对象

1、内存图如上。只要垃圾回收启动一定会被回收。可以通过引用.get方法获取嵌套的对象

2、作用:在ThreadLocal中防止内存泄露(详见多线程专栏的ThreadLocal)

四、虚引用

new

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一梦无痕bzy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值