java中强引用,软引用,弱引用和虚引用是什么-创新互联

小编给大家分享一下java中强引用,软引用,弱引用和虚引用是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

创新互联公司专业为企业提供盂县网站建设、盂县做网站、盂县网站设计、盂县网站制作等企业网站建设、网页设计与制作、盂县企业网站模板建站服务,10年盂县做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

强引用

如果一个对象具有强引用,垃圾回收器绝不会回收它.当内存空间不足时,java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。

软引用 SoftReference

如果内存空间充足,垃圾回收器就不会回收它;如果内存空间不足,就会回收这些对象的内存.只要垃圾回收器没有回收它,该对象就可以继续被应用程序使用.软引用可以实现内存敏感的高速缓存。

弱引用 Weakreference

只具有弱引用的对象具有更短的生命周期.在垃圾回收器线程扫描它所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存.不过,垃圾回收器是一个优先级很低对的线程,因此不一定会很快发现那些只具有弱引用的对象。

虚引用 PhantomReference

虚引用并不会决定对象的生命周期.如果一个对象仅持有虚引用,那么他就和没有任何引用一样,在任何时候都可能被回收。

引用队列 ReferenceQueue

引用队列可以和软引用,弱引用和虚引用联合使用.并且虚引用必须和引用队列联合使用.如果软引用(弱引用或者虚引用)所引用的对象被垃圾回收,java虚拟机就会把这个引用加入到与之关联的引用队列中。

        String reference = "hello";
        //引用队列
        ReferenceQueue queue = new ReferenceQueue<>();
        //弱引用
        WeakReference softReference = new WeakReference(reference,queue);
        reference = null;
        //取出弱引用持有的String对象
        String str = softReference.get();
        //取出引用队列中保存的引用对象
        Reference poll = queue.poll();

以上是java中强引用,软引用,弱引用和虚引用是什么的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联成都网站设计公司行业资讯频道!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:java中强引用,软引用,弱引用和虚引用是什么-创新互联
分享链接:http://scyanting.com/article/deddjd.html