首页 后端开发 XML/RSS教程 Java对象的强、软、弱和虚引用

Java对象的强、软、弱和虚引用

Dec 20, 2016 pm 01:34 PM

    在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,假如有用,就一直保留它,否则就把它扔到垃圾箱,由清洁工人收走。    

    一般说来,假如物品已经被扔到垃圾箱,想再 把它捡回来使用就不可能了。

    但有时候情况并不这么简单,你可能会碰到类似鸡肋一样的物品,食之无味,弃之可惜。这种物品现在已经无用了,保留它会占空间,但是马上扔掉它也不划算,因 为也许将来还会派用场。对于这样的可有可无的物品,一种折衷的处理办法是:假如家里空间足够,就先把它保留在家里,假如家里空间不够,即使把家里所有的垃 圾清除,还是无法容纳那些必不可少的生活用品,那么再扔掉这些可有可无的物品。

    从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。



1.强引用
    本章前文介绍的引用实际上都是强引用,这是使用最普遍的引用。假如一个对象具有强引用,那就类似于必不可少的生活用品,垃圾回收器绝不会回收它。当内存空 间不足,java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。


2.软引用(SoftReference)

    假如一个对象只具有软引用,那就类似于可有可物的生活用品。假如内存空间足够,垃圾回收器就不会回收它,假如内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。
软引用可以和一个引用队列(ReferenceQueue)联合使用,假如软引用所引用的对象被垃圾回收,Java虚拟机就会把这个软引用加入到与之关联的引用队列中。

3.弱引用(WeakReference)
    假如一个对象只具有弱引用,那就类似于可有可物的生活用品。弱引用与软引用的区别在于:只具有弱引用的对象拥有更短暂的生命周期。在垃圾回收器线程扫描它 所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。不过,由于垃圾回收器是一个优先级很低的线程, 因此不一定会很快发现那些只具有弱引用的对象。 
弱引用可以和一个引用队列(ReferenceQueue)联合使用,假如弱引用所引用的对象被垃圾回收,Java虚拟机就会把这个弱引用加入到与之关联的引用队列中。


4.虚引用(PhantomReference)
    "虚引用"顾名思义,就是形同虚设,与其他几种引用都不同,虚引用并不会决定对象的生命周期。假如一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收。
虚引用主要用来跟踪对象被垃圾回收的活动。虚引用与软引用和弱引用的一个区别在于:虚引用必须和引用队列(ReferenceQueue)联合使用。当垃 圾回收器预备回收一个对象时,假如发现它还有虚引用,就会在回收对象的内存之前,把这个虚引用加入到与之关联的引用队列中。程序可以通过判定引用队列中是 否已经加入了虚引用,来了解

    被引用的对象是否将要被垃圾回收。程序假如发现某个虚引用已经被加入到引用队列,那么就可以在所引用的对象的内存被回收之前采取必要的行动。

    在本书中,"引用"既可以作为动词,也可以作为名词,读者应该根据上下文来区分"引用"的含义。
在java.lang.ref包中提供了三个类:SoftReference类、WeakReference类和PhantomReference类,它 们分别代表软引用、弱引用和虚引用。ReferenceQueue类表示引用队列,它可以和这三种引用类联合使用,以便跟踪Java虚拟机回收所引用的对 象的活动。以下程序创建了一个String对象、ReferenceQueue对象和WeakReference对象:

//创建一个强引用
String str = new String("hello");

//创建引用队列, 为范型标记,表明队列中存放String对象的引用
ReferenceQueue rq = new ReferenceQueue();

//创建一个弱引用,它引用"hello"对象,并且与rq引用队列关联
//为范型标记,表明WeakReference会弱引用String对象
WeakReference wf = new WeakReference(str, rq);

 以上就是Java对象的强、软、弱和虚引用的内容,更多相关内容请关注PHP中文网(www.php.cn)! 


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

十大货币交易平台虚拟币app 十大靠谱好用的炒币app 十大货币交易平台虚拟币app 十大靠谱好用的炒币app Feb 17, 2025 pm 03:57 PM

随着虚拟货币市场的蓬勃发展,选择一个可靠的交易平台至关重要。本文推荐 10 个备受推崇的虚拟货币交易平台,涵盖币安、Coinbase、FTX、火币、OKX、Gemini、Kraken、Bitstamp、Bittrex 和 KuCoin。在选择交易平台时,安全性、流动性、费用、资产选择和用户体验等因素至关重要。本文将为您提供权威参考,助您找到最适合您需求的交易平台。

币圈十大货币交易平台排行榜(2025年虚拟币交易app前十名推荐) 币圈十大货币交易平台排行榜(2025年虚拟币交易app前十名推荐) Feb 20, 2025 pm 05:57 PM

最佳虚拟币交易平台推荐: 币安:交易量最大、支持货币最多、生态系统完善; OKX:交易引擎先进、交易工具丰富、衍生品交易平台强大; Gate.io:加密货币支持数量最多、用户界面便捷、提供创新功能; Bitget:衍生品交易专注,社交交易功能领先、流动性强; Coinbase:美国最大、合规性最强、适合初学者。

2025年十大安全虚拟货币交易所权威榜单 数字货币交易app排行 2025年十大安全虚拟货币交易所权威榜单 数字货币交易app排行 Feb 21, 2025 pm 02:24 PM

2025 年十大最安全的虚拟货币交易所: 币安; OKX; Gate.io; Bitget; 火币; KuCoin; Kraken; Bybit; Crypto.com; Coinbase。

2025十大虚拟币交易app权威排行榜 2025十大虚拟币交易app权威排行榜 Mar 07, 2025 pm 06:18 PM

2025年十大虚拟币交易App排名依次为:1. OKX,以安全性、丰富品种和便捷体验领先;2. Binance,全球领先,交易量大,费用低;3. Gate.io,币种丰富,费用低廉;4. Kraken,安全性高,合规性强;5. Coinbase,用户友好,适合新手;6. Huobi Global,全球化平台,多语言支持;7. Crypto.com,奖励计划吸引人。

能够交易虚拟币的平台有哪些? 能够交易虚拟币的平台有哪些? Mar 12, 2025 pm 07:30 PM

本文介绍全球综合排名较高的虚拟货币交易平台,包括币安(Binance)、Gate.io、欧易 OKX、Coinbase、Kraken、Bitfinex、KuCoin、Bybit和火币(Huobi)以及BitMEX等。这些平台在交易深度、用户体验、安全性、合规性等方面各有优势,有的专注于币币交易,有的则擅长衍生品交易,满足不同用户的需求。 选择合适的平台需根据自身交易经验、风险承受能力和投资偏好综合考虑。 点击阅读,了解更多关于这些顶级虚拟货币交易平台的详细信息,助您安全高效地进行数字资产交易

币圈交易所十大数字货币app排名2025最新 币圈交易所十大数字货币app排名2025最新 Feb 27, 2025 pm 06:42 PM

在十大数字货币交易所应用程序中,排名前三的是:币安(丰富的资产品种和先进的交易工具)、OKX(世界领先的加密货币衍生品交易平台)和 Gate.io(支持超过 1000 种数字货币交易)。选择交易所应考虑安全性、交易品种、交易费用、用户体验、声誉和社区等关键步骤。

2025十大交易所虚拟币app(币圈交易所最新top10排名) 2025十大交易所虚拟币app(币圈交易所最新top10排名) Feb 17, 2025 pm 04:27 PM

2025 年,虚拟货币市场预计将继续蓬勃发展,而领先的交易所则提供各种服务以满足用户需求。其中包括币安,因其广泛的交易对和低费用而备受瞩目;火币,以其流动性和安全措施而闻名;以及 Coinbase,以其用户友好性和适合初学者的法定货币支持而著称。

香港十大币圈交易平台 香港数字货币交易app排行榜前十2025 香港十大币圈交易平台 香港数字货币交易app排行榜前十2025 Mar 03, 2025 pm 09:18 PM

2025年香港数字货币交易app排行前十:OKX技术强、产品新;Binance全球领先、生态全;Gate.io币种多、工具独特;Kraken合规安全;Huobi经验丰富;Coinbase界面易用;KuCoin创新活跃;Crypto.com生态全;Bitfinex专业;Gemini安全透明 。

See all articles