Android面试题:Java四大引用是什么?他们的区别是什么?

本文介绍了Java中的强引用、软引用及其应用场景。强引用是默认的引用类型,只要引用存在,对象就不会被垃圾回收。软引用则在内存不足时才会被回收,常用于图片缓存,以平衡内存使用和性能。了解这些概念有助于进行有效的内存管理和防止OOM错误。

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

什么是强引用?什么是软引用?
参考连接

强引用:用只要引用链没有断开就不会释放,system.gc()可以回收强引用
软引用:会在内存不足的时候(或者即将报oom异常的时候),才会得到释放,system.gc()不会回收软引用

使用场景:软引用可以用来处理图片
如果APP中需要加载大量的图片,如果直接加载大到内存中,虽然打开图片很快,但是会消耗大量的内存。

如果将图片缓存到本地磁盘中,每次打开图片的时候都要进行读写操作,这样的话很慢

所以可以用软引用构建一块内存,当内容不够用的时候直接,将构建的内存释放就行
弱引用:可以使用system.gc()进行回收

使用场景(处理内存泄漏):如果某一块内存的回收对APP没有任何影响,这样对象就可以用弱引用管理
虚引用:如果不做虚拟机的开发,几乎用不到

作用:得到一个gc回收的通知

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值