强引用-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 强软弱虚引用介绍及使用场景相关推荐

  1. java虚引用作用_深入理解Java中的引用(二)——强软弱虚引用

    深入理解Java中的引用(二)--强软弱虚引用 在上一篇文章中介绍了Java的Reference类,本篇文章介绍他的四个子类:强引用.软引用.弱引用.虚引用. 强引用(StrongReference) ...

  2. 【重难点】【Java基础 01】一致性哈希算法、sleep() 和wait() 的区别、强软弱虚引用

    [重难点][Java基础 01]一致性哈希算法.sleep() 和wait() 的区别.强软弱虚引用 文章目录 [重难点][Java基础 01]一致性哈希算法.sleep() 和wait() 的区别. ...

  3. Java中的强软弱虚引用《对Java的分析总结三》

    <对Java的分析总结>-Java中的强软弱虚引用 强引用 StrongReference 软引用 SoftReference 弱引用 WeakReference 虚引用 PlantomR ...

  4. 强软弱虚引用,只有体会过了,才能记住

    以前学习强软弱虚引用的时候,只是走马观花看看博客,并没有自己写代码去实践.去证明,导致每次看完后,过不了多久就忘了,后来下定决心,一定要自己敲敲代码,这样才能让印象更加深刻,古人云:纸上得来终觉浅,绝 ...

  5. 回过头来看对象的四种状态强软弱虚引用的理解

    一.对象的四种引用状态描述 在JDK1.2之后,Java对引用的概念进行了扩充,将引用分为强引用(Strong Reference).软引用(Soft Reference).弱引用(Weak Refe ...

  6. 【Java】强软弱虚四种引用,弱引用在ThreadLocal中的应用

    Java中的引用类型 - 强软虚弱 1.强引用(StrongReference) Object strongReference = new Object(); 只要有引用指向它,就不会被回收.当内存空 ...

  7. java中的强软弱虚_详解Java的四种引用——强软弱虚,颠覆你的认知!

    强软弱虚 java中的数据被类型分为了两类,它们分别是基本类型和引用类型.一般我们new出来的对象都属于引用类型的范畴.我们知道java是有垃圾回收机制的一种语言,根据垃圾回收时的策略,java将对于 ...

  8. Java中的引用:强软弱虚

    前言 之前在研究MVP的时候接触过弱引用,用来避免由于Activity被回收导致的内存泄露,但是当时只是浅尝辄止,没有系统的去接触引用这一块,没想到最近在看ThreadLocal的时候又看到关于引用的 ...

  9. 强软弱虚---强引用、软引用、弱引用、虚引用

    博客出自:http://blog.csdn.net/liuxian13183 1.概述 在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有对象处于可触 ...

  10. Android 强软弱虚四大引用★

    1.引用 Java中的引用,类似于C++的指针.通过引用,可以对堆中的对象进行操作.在某个函数中,当创建了一个对象,该对象被分配在堆中,通过这个对象的引用才能对这个对象进行操作. 举例说明: Stri ...

最新文章

  1. 应用程序自定义快捷键
  2. JVM---程序计数器
  3. 我的世界java版怎么添加光影,《我的世界》中国版光影添加教程 国服怎么添加光影?...
  4. 19岁「黑客」连续破解25辆特斯拉:远程控制门窗、灯光、音乐,还能直接开走...
  5. 利用现有资源快速实现汉语专用分词系统
  6. 2021年春季学期-信号与系统-第十四次作业参考答案-第九小题参考答案
  7. 解决tomcat中文传输乱码问题
  8. php单例型(singleton pattern)
  9. javascript读取php,PHP如何读取由JavaScript设置的Cookie
  10. 作文 深海机器人_机器人作文(共10篇)
  11. 游戏主播们为什么早上不玩游戏?直播圈里还有哪些不成文的规定呢?
  12. 跟随我在oracle学习php(42)
  13. JDK1.8帮助文档chm格式中英文
  14. java计算机毕业设计线上医药用品分销系统设计与实现MyBatis+系统+LW文档+源码+调试部署
  15. linux远程关机重启命令,Linux关机命令解析
  16. 用正则表达式清除各类符号
  17. 元宇宙研讨会-空间设计与交互技术构造的叙事世界
  18. 斑马zt410标签纸大小不能调的原因
  19. vue-seamless-scroll组件踩坑指南
  20. Linux 软中断机制分析

热门文章

  1. UNP Chapter 3 - 套接口编程简介
  2. latex 生成pdf显示行号
  3. Atitit 算法之道 之压缩算法 attilax总结 1. 压缩算法与压缩格式区别 1 2. 压缩算法于格式 1 2.1. H264 mpg jpg MP3 2 2.2. Zip rar 。L
  4. Atitit usrqbg1821 Tls 线程本地存储(ThreadLocal Storage 规范标准化草案解决方案ThreadStatic
  5. Atitit 编程语言原理与概论attilax总结 三大书籍总结
  6. paip.python错误解决10
  7. paip. 'QObject::QObject(const QObject)' is private问题的解决.
  8. python: 大规模数据集的读存技巧
  9. 券商结算VS托管行结算
  10. (转)惊鸿一瞥:人工智能,改变研究方式的力量