java 弱引用 使用场景_Java 强软弱虚引用介绍及使用场景
强引用-FinalReference
介绍:
强引用是平常中使用最多的引用,强引用在程序内存不足(OOM)的时候也不会被回收,使用方式:
String str = new String("str");
这个str就是强引用。
可用场景:
地球人都知道,但是我讲不出来。
软引用-SoftReference
介绍:
软引用在程序内存不足时,会被回收,使用方式:
// 注意:wrf这个引用也是强引用,它是指向SoftReference这个对象的,
// 这里的软引用指的是指向new String("str")的引用,也就是SoftReference类中T
SoftReference wrf = new SoftReference(new String("str"));
可用场景:
创建缓存的时候,创建的对象放进缓存中,当内存不足时,JVM就会回收早先创建的对象。PS:图片编辑器,视频编辑器之类的软件可以使用这种思路。
软引用使用例子传送门:https://www.cnblogs.com/mjorc...
弱引用-WeakReference
介绍:
弱引用就是只要JVM垃圾回收器发现了它,就会将之回收,使用方式:
WeakReference wrf = new WeakReference(str);
可用场景:
Java源码中的java.util.WeakHashMap中的key就是使用弱引用,我的理解就是,一旦我不需要某个引用,JVM会自动帮我处理它,这样我就不需要做其它操作。
弱引用使用例子传送门:http://www.importnew.com/2120...
虚引用-PhantomReference
介绍:
虚引用的回收机制跟弱引用差不多,但是它被回收之前,会被放入ReferenceQueue中。注意哦,其它引用是被JVM回收后才被传入ReferenceQueue中的。由于这个机制,所以虚引用大多被用于引用销毁前的处理工作。还有就是,虚引用创建的时候,必须带有ReferenceQueue,使用例子:
PhantomReference prf = new PhantomReference(new String("str"), new ReferenceQueue<>());
可用场景:
对象销毁前的一些操作,比如说资源释放等。Object.finalize()虽然也可以做这类动作,但是这个方式即不安全又低效(传送门:http://blog.csdn.net/aitangyo...,so。
强调
上诉所说的几类引用,都是指对象本身的引用,而不是指Reference的四个子类的引用(SoftReference等)。
java 弱引用 使用场景_Java 强软弱虚引用介绍及使用场景相关推荐
- java虚引用作用_深入理解Java中的引用(二)——强软弱虚引用
深入理解Java中的引用(二)--强软弱虚引用 在上一篇文章中介绍了Java的Reference类,本篇文章介绍他的四个子类:强引用.软引用.弱引用.虚引用. 强引用(StrongReference) ...
- 【重难点】【Java基础 01】一致性哈希算法、sleep() 和wait() 的区别、强软弱虚引用
[重难点][Java基础 01]一致性哈希算法.sleep() 和wait() 的区别.强软弱虚引用 文章目录 [重难点][Java基础 01]一致性哈希算法.sleep() 和wait() 的区别. ...
- Java中的强软弱虚引用《对Java的分析总结三》
<对Java的分析总结>-Java中的强软弱虚引用 强引用 StrongReference 软引用 SoftReference 弱引用 WeakReference 虚引用 PlantomR ...
- 强软弱虚引用,只有体会过了,才能记住
以前学习强软弱虚引用的时候,只是走马观花看看博客,并没有自己写代码去实践.去证明,导致每次看完后,过不了多久就忘了,后来下定决心,一定要自己敲敲代码,这样才能让印象更加深刻,古人云:纸上得来终觉浅,绝 ...
- 回过头来看对象的四种状态强软弱虚引用的理解
一.对象的四种引用状态描述 在JDK1.2之后,Java对引用的概念进行了扩充,将引用分为强引用(Strong Reference).软引用(Soft Reference).弱引用(Weak Refe ...
- 【Java】强软弱虚四种引用,弱引用在ThreadLocal中的应用
Java中的引用类型 - 强软虚弱 1.强引用(StrongReference) Object strongReference = new Object(); 只要有引用指向它,就不会被回收.当内存空 ...
- java中的强软弱虚_详解Java的四种引用——强软弱虚,颠覆你的认知!
强软弱虚 java中的数据被类型分为了两类,它们分别是基本类型和引用类型.一般我们new出来的对象都属于引用类型的范畴.我们知道java是有垃圾回收机制的一种语言,根据垃圾回收时的策略,java将对于 ...
- Java中的引用:强软弱虚
前言 之前在研究MVP的时候接触过弱引用,用来避免由于Activity被回收导致的内存泄露,但是当时只是浅尝辄止,没有系统的去接触引用这一块,没想到最近在看ThreadLocal的时候又看到关于引用的 ...
- 强软弱虚---强引用、软引用、弱引用、虚引用
博客出自:http://blog.csdn.net/liuxian13183 1.概述 在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有对象处于可触 ...
- Android 强软弱虚四大引用★
1.引用 Java中的引用,类似于C++的指针.通过引用,可以对堆中的对象进行操作.在某个函数中,当创建了一个对象,该对象被分配在堆中,通过这个对象的引用才能对这个对象进行操作. 举例说明: Stri ...
最新文章
- 应用程序自定义快捷键
- JVM---程序计数器
- 我的世界java版怎么添加光影,《我的世界》中国版光影添加教程 国服怎么添加光影?...
- 19岁「黑客」连续破解25辆特斯拉:远程控制门窗、灯光、音乐,还能直接开走...
- 利用现有资源快速实现汉语专用分词系统
- 2021年春季学期-信号与系统-第十四次作业参考答案-第九小题参考答案
- 解决tomcat中文传输乱码问题
- php单例型(singleton pattern)
- javascript读取php,PHP如何读取由JavaScript设置的Cookie
- 作文 深海机器人_机器人作文(共10篇)
- 游戏主播们为什么早上不玩游戏?直播圈里还有哪些不成文的规定呢?
- 跟随我在oracle学习php(42)
- JDK1.8帮助文档chm格式中英文
- java计算机毕业设计线上医药用品分销系统设计与实现MyBatis+系统+LW文档+源码+调试部署
- linux远程关机重启命令,Linux关机命令解析
- 用正则表达式清除各类符号
- 元宇宙研讨会-空间设计与交互技术构造的叙事世界
- 斑马zt410标签纸大小不能调的原因
- vue-seamless-scroll组件踩坑指南
- Linux 软中断机制分析
热门文章
- UNP Chapter 3 - 套接口编程简介
- latex 生成pdf显示行号
- Atitit 算法之道 之压缩算法 attilax总结 1. 压缩算法与压缩格式区别	1 2. 压缩算法于格式	1 2.1. H264 mpg jpg MP3	2 2.2. Zip rar 。L
- Atitit usrqbg1821 Tls 线程本地存储(ThreadLocal Storage 规范标准化草案解决方案ThreadStatic
- Atitit 编程语言原理与概论attilax总结 三大书籍总结
- paip.python错误解决10
- paip. 'QObject::QObject(const QObject)' is private问题的解决.
- python: 大规模数据集的读存技巧
- 券商结算VS托管行结算
- (转)惊鸿一瞥:人工智能,改变研究方式的力量