您的位置:首页 > 互联网

什么是SoftReference,SoftReference的用途与意义

发布时间:2023-09-29 00:09:26  来源:互联网     背景:

SoftReference(软引用)是Java中一种弱化了引用强度的引用方式。SoftReference所指向的对象在系统内存充足时不会被回收,但在系统内存不足时则有可能会被回收。

SoftReference的主要用途在于缓存一些可能会频繁访问但不必保留在内存中的数据。例如,Java中的图片缓存常常使用SoftReference来缓存图片,该缓存策略可以在图片过期或系统内存不足时自动清除已经不再使用的图片对象,避免了内存泄漏。

与WeakReference(弱引用)的区别在于,SoftReference在Java虚拟机内存不足时可能会被回收,而WeakReference对象则更容易被回收。

SoftReference(软引用)是Java中一种弱化了引用强度的引用方式,用于缓存一些可能会频繁访问但不必保留在内存中的数据。该引用方式在Java的缓存策略中应用广泛。

1.SoftReference详解

SoftReference,即软引用,是Java中引用类型的一种。在Java中,引用可以分为强引用、软引用、弱引用和虚引用四种类型。与强引用相同,软引用指向对象的引用也不会被垃圾回收机制自动回收。不同的是,当垃圾回收器在内存不足并决定进行一次垃圾回收时,如果对于某个对象来说,只有一个软引用指向它,那么这个对象就会被回收。

softreference可以配合缓存一起使用,由于缓存中存在对该对象的软引用,故在虚拟机所能容纳下的内存空间有限时,缓存中的对象可能被垃圾回收器回收,从而动态地调节缓存的容量,充分利用有限的语言环境存储空间。

SoftReference的实现

JDK1.2中提供了Reference类及其子类,SoftReference是其子类之一,该类定义了一个模板方法Reference.get()用于获取引用所指向的对象,另外还提供了一个clear()方法用于清空引用,使引用指向null。当垃圾回收器收集到可回收对象并确定删除时,会依次run此引用队列中注册的处理器,并出击队列中被注册的引用,这样,即可实现缓存的动态调整。

SoftReference是Java中的一种引用方式,在Java的缓存策略中应用广泛。它可以与缓存一起使用,动态调节缓存的容量,充分利用有限的语言环境存储空间。SoftReference的实现依赖于JDK1.2中提供的Reference类及其子类。


返回网站首页

本文评论
购机均送充电宝 中兴MEMO U5/N5降价促销
  【手机中国 新闻】双十一降至,针对此次购物节,中兴手机联合天猫商城推出了一系列的购机优惠活动。此次活动针对中兴MEMO U5与MEMO N5,在双十一期间,这两款机型价格相比此...
日期:02-12
1200万旗舰智能机 诺基亚N8仅售1900元
  (深圳事业部)近日,笔者在商家“独赢手机特价销售”处了解到,诺基亚旗下旗舰机皇诺基亚N8(亚太版)今日的报价为1900元。该机标准配置为一原装电池、一冲电器、耳机、数据线...
日期:10-10
1.4GHz高通处理器 三星I8150报价1480
  (深圳事业部)近日,笔者在商家“宏盛手机网”处了解到,三星I8150(欧版)最近到货,商家给出的报价为1480元,配件有:一原装电池 一冲电器 音乐耳机 数据线 内存卡 说明书等,购机即可获...
日期:05-01
至尊商务品质 诺基亚8800A现售4888元
  (深圳事业部)近日,笔者在商家“乐购手机城”了解到,诺基亚8800A(行货)最新报价为4888元,感兴趣的朋友可以考虑出手了。该机标准配置为一电池、一充电底座、一蓝牙耳机、皮革手...
日期:04-27
WP7剑走偏锋 1G强机三星I8700热销中
(南京行情)三星I8700这款手机搭载了Windows Phone 7智能操作系统,其强大的硬件配置和大气的外观十分令人喜爱,目前,该机(改版机)在商家“南京泓屹通讯”处报价1850元,配件包括一电一...
日期:04-28
iPhone 2.0破解软件QuickPwn使用教程
第一步:准备工作   目前苹果公司iPhone手机分为2.5G和3G(网络制式不同)两种不同的版本,两者最新固件版本虽然同为2.0.2,但是固件本质却有所不同。介于目前繁杂的手机操作系统...
日期:03-06