你的位置:首页 > 软件开发 > Java > java强引用、软引用、弱引用、虚引用

java强引用、软引用、弱引用、虚引用

发布时间:2015-08-27 15:00:09
前言概述 在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。这就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱,由清洁工人收走。一般说来,如果物品已经被扔到垃圾箱,想再把它捡回来使用就不可能了。 但有时候情 ...

前言概述

JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。这就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱,由清洁工人收走。一般说来,如果物品已经被扔到垃圾箱,想再把它捡回来使用就不可能了。

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

针对上述的问题,从jdk1.2开始,java对引用的概念进行了扩充。程序更加灵活的控制对象的生命周期。引用分为强引用(Stong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)、虚引用(Phantom Reference)。这4中引用强度依次减弱。下面我们分别介绍这4中引用的概念和使用方式

强引用

在我们程序中中使用的大部分引用都是强引用,如果一个对象具有强引用,就类似于生活中必不可少的物品,垃圾回去绝不回收它。当内存空间不足时,java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。

Object object=new Object();//强引用object=null;//告诉java虚拟机,不使用这个对象了,可以回收了

原标题:java强引用、软引用、弱引用、虚引用

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。