•   欢迎来到21NN网.
  •   请记住本站网址www.21nn.cn

java中强援用,软援用,弱援用和虚援用的对照引见【JAVA教程】,java

摘要: 本篇文章给人人带来的内容是关于java中强援用,软援用,弱援用和虚援用的对照引见,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。强援用假如一个对象具有强援用,垃圾接纳器绝不会接...

本篇文章给人人带来的内容是关于java中强援用,软援用,弱援用和虚援用的对照引见,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。

强援用

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

软援用 SoftReference<T>

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

弱援用 Weakreference<T>

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

虚援用 PhantomReference<T>

虚援用并不会决议对象的生命周期.假如一个对象仅持有虚援用,那末他就和没有任何援用一样,在任何时候都能够被接纳。

援用行列 ReferenceQueue<T>

援用行列能够和软援用,弱援用和虚援用团结运用.而且虚援用必需和援用行列团结运用.假如软援用(弱援用或许虚援用)所援用的对象被垃圾接纳,java虚拟机就会把这个援用加入到与之关联的援用行列中。

        String reference = "hello";
        //援用行列
        ReferenceQueue<String> queue = new ReferenceQueue<>();
        //弱援用
        WeakReference<String> softReference = new WeakReference<String>(reference,queue);
        reference = null;
        //掏出弱援用持有的String对象
        String str = softReference.get();
        //掏出援用行列中保留的援用对象
        Reference<? extends String> poll = queue.poll();

以上就是java中强援用,软援用,弱援用和虚援用的对照引见的细致内容,更多请关注ki4网别的相干文章!

分享到:

发表评论

评论列表

还没有评论,快来说点什么吧~

公众号二维码

微信公众号