hi,你好!欢迎访问本站!登录
本站由网站地图腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 教程 - 后端开发 - 正文 君子好学,自强不息!

【后端开辟】Java中四种援用有什么区别?

2019-11-16后端开发搜奇网106°c
A+ A-

Java中四种援用有什么区分?

Java中存在四种援用,它们分别为:强援用,软援用,弱援用,虚援用。这四种援用强度顺次逐步削弱。【引荐进修:java课程】

强援用(StrongReference)

强援用是运用最广泛的援用。假如一个对象具有强援用,那垃圾接纳器绝不会接纳它。当内存空间不足,Java虚拟机情愿抛出OutOfMemoryError毛病,使顺序非常停止,也不会靠随便接纳具有强援用的对象来处理内存不足的题目。

软援用(SoftReference)

假如一个对象只具有软援用,则内存空间充足,垃圾接纳器就不会接纳它;假如内存空间不足了,就会接纳这些对象的内存。只需垃圾接纳器没有接纳它,该对象就能够被顺序运用。软援用可用来完成内存敏感的高速缓存。

软援用能够和一个援用行列(ReferenceQueue)团结运用,假如软援用所援用的对象被垃圾接纳器接纳,Java虚拟机就会把这个软援用加入到与之关联的援用行列中。

弱援用(WeakReference)

弱援用与软援用的区分在于:只具有弱援用的对象具有更短暂的生命周期。在垃圾接纳器线程扫描它所统领的内存地区的过程当中,一旦发明了只具有弱援用的对象,不论当前内存空间充足与否,都邑接纳它的内存。不过,因为垃圾接纳器是一个优先级很低的线程,因而不一定会很快发明那些只具有弱援用的对象。

弱援用能够和一个援用行列(ReferenceQueue)团结运用,假如弱援用所援用的对象被垃圾接纳,Java虚拟机就会把这个弱援用加入到与之关联的援用行列中。

虚援用(PhantomReference)

"虚援用"望文生义,就是形同虚设,与其他几种援用都差别,虚援用并不会决议对象的生命周期。假如一个对象仅持有虚援用,那末它就和没有任何援用一样,在任何时候都能够被垃圾接纳器接纳。

虚援用重要用来跟踪对象被垃圾接纳器接纳的运动。虚援用与软援用和弱援用的一个区分在于:虚援用必需和援用行列 (ReferenceQueue)团结运用。当垃圾接纳器预备接纳一个对象时,假如发明它还有虚援用,就会在接纳对象的内存之前,把这个虚援用加入到与之 关联的援用行列中。

Java中供应这四种援用范例重要有两个目标:

  • 能够让顺序员经由过程代码的体式格局决议某些对象的生命周期;

  • 有利于JVM举行垃圾接纳。

以上就是Java中四种援用有什么区分?的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  移步手机端
【后端开辟】Java中四种援用有什么区别?

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签:

本文来源:搜奇网

本文地址:https://www.sou7.cn/281700.html

关注我们:微信搜索“搜奇网”添加我为好友

版权声明: 本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。请记住本站网址https://www.sou7.cn/搜奇网。

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>