Java中的强引用,软引用,弱引用,虚引用的作用介绍

网友投稿 274 2022-08-27


Java中的强引用,软引用,弱引用,虚引用的作用介绍

目录1.强引用(StrongReference)2.软引用(SoftReference)3.弱引用(WeakReference)4.虚引用(PhantomReference)5.强引用>软引用>弱引用>虚引用

1.强引用( Strong Reference )

最普遍的引用:Object obj=new Object()抛出OutOfMemoryError终止程序也不会回收具有强引用的对象通过将对象设置为null来弱化引用,使其被回收

2.软引用( Soft Reference )

对象处在有用但非必须的状态只有当内存空间不足时,GC会回收该引用的对象的内存可以用来实现高速缓存

String str=new String( original: "abc"); //强引用

SoftReference shttp://oftRef=new SoftReference(str);//软引用

3.弱引用( Weak Reference )

非必须的对象,比软引用更弱一些GC时会被回被回收的概率也不大,因为GC线程优先级比较低适用于引用偶尔被使用且不影响垃圾收集的对象

string str=new String( original: "abc"y ;

weakReference abcweakRef = new weakReference(str);

4.虚引用( PhantomReference )

不会决定对象的生命周期任何时候都可能被垃圾收集器回收跟踪对象被垃圾收集器回收的活动,起哨兵作用必须和引用队ReferenceQueue联合使用

String str=new String( original: "abc");

ReferenceQueue queue = new ReferenceQueaoTwRlleque( ) ;

PhantomReference ref = new PhantomReference(str, queue);

5.强引用>软引用>弱引用>虚引用


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【Python】列表(list)分片的扩展用法(python list分片)
下一篇:【Python】位运算(python位与运算符)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~