弱引用的介绍

<强>

Java, o,。GC, o, o。,: 1) 2) GC。

<强>

, GC

对象c=新车();

c=零;

,,,, java,堆栈,GC。

。缓存,缓存,cacheGC (cachereferencelife周期)。cachereference GCobject,。对象,对象。GC(对象)。

<>强weakreference引用 <强>

, javaweak参考。强引用:对象c=新车();//ccar、汽车

弱引用,强引用,GC,。

<强> weakreference引用 <强>

weakreference引用<汽车> weakCar=newWeakReference(汽车)(汽车);

referenceobject疲软,:

weakCar.get ();

, weakCar。

<强>:

包weakreference;

/* * * @authorwison

*/

公共类车{

privatedouble价格;

privateString色彩;

publicCar(双重价格,字符串的颜色){

。价格=价格;

。颜色=颜色;

}

publicdouble getPrice () {

returnprice;

}

publicvoid setPrice(双价格){

。价格=价格;

}

publicString getColour () {

returncolour;

}

publicvoid setColour (String颜色){

。颜色=颜色;

}

publicString toString () {

returncolour +“汽车美元”+价格;

}

}

包weakreference;

进口java.lang.ref.WeakReference;

/* *

* @authorwison

*/

公共类TestWeakReference {

publicstatic void main (String [] args) {

Carcar=新汽车(22000年,“银”);

weakreference引用<汽车> weakCar=new weakreference引用<汽车>(汽车);

印锑=0;

,(真正的){

如果(weakCar.get () !=null) {

我+ +,

system . out。println(“对象是活的”+我+“循环——“+ weakCar);其他

} {

system . out。println(“收集对象。”);

打破;

}

}

}

}

,,收集“对象”。weakreference引用。

,汽车,汽车强引用,弱引用weakCar。javawhile,汽车,(?)。

<强>

TestWeakReference。java:

包weakreference;

进口java.lang.ref.WeakReference;

/* * * @authorwison

*/

公共类TestWeakReference {

publicstatic void main (String [] args) {

Carcar=新汽车(22000年,“银”);

weakreference引用<汽车> weakCar=new weakreference引用<汽车>(汽车);

印锑=0;

,(真正的){

system . out。println(“这是强引用‘汽车’”+);

如果(weakCar.get () !=null) {

我+ +,

system . out。println(“对象是活的”+我+“循环——“+ weakCar);其他

} {

system . out。println(“收集对象。”);

打破;

}

}

}

}

referenceobject疲软。strongreference车。WeakReference引用,GC。弱引用,.

<强> ReferenceQueue <强>

弱引用,弱引用。javaReferenceQueuereference。WeakReferenceReferenceQueue。引用

<强> SoftReference <强>

软referenceweakreference, GC:软referenceobject。、软referenceweak referencecache objectsreference。保留缓存对象。

<强>

1) 2) GC。软referenceweakreference


弱引用的介绍