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

 更新时间:2022年02月18日 10:29:13   作者:孙中明  
这篇文章主要介绍了Java中的强引用,软引用,弱引用,虚引用的作用,下文内容具有一定的知识参考价值,需要的小伙伴可以参考一下,希望对你有所帮助

1.强引用( Strong Reference )

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

2.软引用( Soft Reference )

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

String str=new String( original: "abc"); //强引用
SoftReference<String> softRef=new SoftReference<String>(str);//软引用

3.弱引用( Weak Reference )

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

string str=new String( original: "abc"y ;
weakReference<String> abcweakRef = new weakReference<String>(str);

4.虚引用( PhantomReference )

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

String str=new String( original: "abc");
ReferenceQueue queue = new ReferenceQueue( ) ;
PhantomReference ref = new PhantomReference(str, queue);

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

到此这篇关于Java中的强引用,软引用,弱引用,虚引用的作用介绍的文章就介绍到这了,更多相关Java中的强引用,软引用,弱引用,虚引用的作用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • springboot+thymeleaf整合阿里云OOS对象存储图片的实现

    springboot+thymeleaf整合阿里云OOS对象存储图片的实现

    本文主要介绍了springboot+thymeleaf整合阿里云OOS对象存储图片的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • Spring Cache用法及常见问题解决方案

    Spring Cache用法及常见问题解决方案

    Spring Cache用法很简单,但你知道这中间的坑吗?今天我以一个亲身经历者的角度,系统的讲解SpringCache的用法,并且举例介绍使用SpringCache遇到的常见问题,感兴趣的朋友跟随小编一起看看吧
    2025-09-09
  • Java进阶教程之运行时类型识别RTTI机制

    Java进阶教程之运行时类型识别RTTI机制

    这篇文章主要介绍了Java进阶教程之运行时类型识别RTTI机制,在Java运行时,RTTI维护类的相关信息,比如多态(polymorphism)就是基于RTTI实现的,需要的朋友可以参考下
    2014-09-09
  • Spring之配置multipartResolver解析器、上传文件、处理文件过程

    Spring之配置multipartResolver解析器、上传文件、处理文件过程

    文章介绍了Spring中处理multipart表单的两种解析器(CommonsMultipartResolver和StandardServletMultipartResolver)的配置方法,包括文件大小限制、临时存储路径设置,以及通过enctype和accept属性控制上传格式,强调MultipartFile需配置解析器,而Part接口无需
    2025-08-08
  • Spring cloud Gateway简介及相关配置方法

    Spring cloud Gateway简介及相关配置方法

    这篇文章主要介绍了Spring cloud Gateway简介及相关配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • Java利用三目运算符比较三个数字的大小

    Java利用三目运算符比较三个数字的大小

    今天小编就为大家分享一篇关于Java利用三目运算符比较三个数字的大小,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Java实现添加条码或二维码到Word文档

    Java实现添加条码或二维码到Word文档

    这篇文章主要介绍了如何在Word文档中添加条码、二维码。可在文档正文段落中添加,也可在页眉页脚中添加,感兴趣的小伙伴快跟随小编一起学习一下吧
    2022-05-05
  • Java调用第三方http接口的常用方式总结

    Java调用第三方http接口的常用方式总结

    这篇文章主要介绍了Java调用第三方http接口的常用方式总结,具有很好的参考价值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • 关于SpringBoot配置文件加载位置的优先级

    关于SpringBoot配置文件加载位置的优先级

    这篇文章主要介绍了关于SpringBoot配置文件加载位置的优先级,我们也可以通过spring.config.location来改变默认的配置文件位置,项目打包好后,我们可以通过命令行的方式在启动时指定配置文件的位置,需要的朋友可以参考下
    2023-10-10
  • Spring spel表达式使用方法示例

    Spring spel表达式使用方法示例

    这篇文章主要介绍了Spring spel表达式使用方法示例,通过一些实例向大家展示了spel表达式的用法,需要的朋友可以了解下。
    2017-09-09

最新评论