android面试题 谈谈强 软 弱 虚引用

本文介绍了Java中四种引用类型:强引用、软引用、弱引用和虚引用。强引用是默认引用类型,即使内存不足也不会回收;软引用在内存充足时保持对象,内存不足时会被回收;弱引用会在垃圾收集器扫描时立即回收;虚引用主要用于跟踪对象的回收状态,不直接访问对象,并结合ReferenceQueue使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先看类的结构图:

t

它是在java.lang.ref包下 从上面的单词就知道了Reference是引用的意思,前面的前缀就是所说的软  弱 虚引用,我们通常都是使用强引用,

 Person person = new Person();

Java默认就是强引用,比如上面的new Peson对象,

强引用的特点:

当内存不足, jvm开始垃圾回收,对于强引用的对象,就算出现OOM异常也不会对该对象进行回收,Android内存泄露大部分都是强引用导致的,

 Object object1 = new Object();
        Object object2 = object1;
        object1 = null;
        System.gc();
        System.out.println("object2="+object2);

虽然把object1=null,然后object2还是存在,

软引用特点:

软引用是相对强引用弱点的引用,需要使用SoftReference类来实现,当系统内存充足时,它不会被回收,当系统内存不足时,它会被回收,软引用通常使用在对内存比较敏感时使用

 Object object1 = new Object();
       SoftReference<Object> softReference = new SoftReference<>(object1);

       object1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值