StrongReference

强引用是使用最普遍的引用,如果一个对象具有强引用,那么垃圾回收器绝不会回收它,如:

Object obj = new Object(); // 强引用

当内存空间不足,jvm宁愿抛出OutOfMemoryError错误,也不靠随意回收具有强引用的对象来解决内存不足的问题。如果不使用时,要通过如下方式弱化引用。Eg:

obj = null; // 帮助垃圾回收器回收此对象

-------------------------------------------------------------------------------------------------------------------------------

SoftReference

如果一个对象只具有软引用,则内存空间组够,垃圾回收期就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被被程序使用。

软应用可用来实现内存敏感的高速缓存。

String abc = new String(“abc”); //Strong

SoftReference<String> softRef = new SoftReference<String>(str); //Soft

-------------------------------------------------------------------------------------------------------------------------------

WeakReference

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

-------------------------------------------------------------------------------------------------------------------------------

PhantomReference

虚引用顾名思义,就是形同虚设,与其他几种引用都不同,虚引用并不会决定对象的生命周期。如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收器回收。

总结:

Java四种引用的级别由高到低依次为:

强引用 > 软引用 > 弱引用 > 虚引用

简单介绍强引用,软引用,弱引用,虚引用相关推荐

  1. 软引用和弱引用的区别_强、软、弱、虚引用的区别和使用

    原文阅读: 强.软.弱.虚引用的区别和使用​mp.weixin.qq.com Java提供了四种级别的应用类型:强引用.软引用.弱引用及虚引用.那么这四种引用类型有什么区别呢? 首先我们通过一张图来看 ...

  2. 对象的强、软、弱和虚引用

    本文介绍对象的强.软.弱和虚引用的概念.应用及其在UML中的表示. 1.对象的强.软.弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有 ...

  3. Java:对象的强、软、弱和虚引用

    见:http://zhangjunhd.blog.51cto.com/113473/53092 maven/Java/web/bootstrap/dataTable/app开发QQ群:56686262 ...

  4. java中四种引用类型(对象的强、软、弱和虚引用)

    2019独角兽企业重金招聘Python工程师标准>>> 对象的强.软.弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有 ...

  5. java-基础-强、软、弱、虚引用

    Java的四种引用,强弱软虚,用到的场景. JDK1.2之前只有强引用,其他几种引用都是在JDK1.2之后引入的. 强引用(Strong Reference) 最常用的引用类型,如Object obj ...

  6. jvm系列 (四) ---强、软、弱、虚引用

    java引用 目录 jvm系列(一):jvm内存区域与溢出 jvm系列(二):垃圾收集器与内存分配策略 jvm系列(三):锁的优化 我的博客目录 为什么将引用分为不同的强度 因为我们需要实现这样一种情 ...

  7. JVM 学习(2)—简单理解Java 四大引用(强、软、弱、虚)

    一.Java 引用概述 Java 中出现四种引用是为了更加灵活地管理对象的生命周期,以便在不同场景下灵活地处理对象的回收问题.不同类型的引用在垃圾回收时的处理方式不同,可以用来实现不同的垃圾回收策略. ...

  8. Java对象引用四个级别(强、软、弱、虚)

    转载自 Java对象引用四个级别(强.软.弱.虚) 最近,高级Java技术栈微信群中,有一些猿友在讨论JVM中对象的周期问题,有谈到引用的级别,现在为大家做个总结吧,虽然大多数公司并没有意识或者用到这 ...

  9. 【Java】Java对象引用四个级别(强、软、弱、虚)

    文章目录 1.概述 强引用(StrongReference) 软引用(SoftReference) 弱引用(WeakReference) 虚引用(PhantomReference) 2. 扩展阅读 1 ...

  10. Java的四大引用强、软、弱、虚

    一.什么是引用 首先要明白什么是一个引用呢?Object o = new Object()这就是一个引用了,一个变量指向new出来的对象,这个变量就叫一个引用,引用这个东西,在java里面分4种,普通 ...

最新文章

  1. html5小游戏Untangle
  2. Golang 入门系列(九) 如何读取YAML,JSON,INI等配置文件...
  3. 2021-05-08 docker镜像无法删除 Error:No such image:xxxxxx
  4. 无法序列化会话状态。请注意,当会话状态模式为“StateServer”或“SQLServer”时,不允许使用无法序列化的对象或 MarshalByRef 对象。...
  5. PHP 正则表达式资料
  6. python大游戏_玩游戏就能学Python?太炫酷了!
  7. 数据分析最具价值的49个案例(建议收藏)
  8. 图论复习(二)-——哈密顿图及其应用
  9. VARCHART XGantt适用于.NET v5.1 Build 337
  10. C/S权限系统得到拼音和五笔的自定义函数(二)
  11. 【转】全国最佳医院排名
  12. html文件默认浏览器改不了,怎么设置默认浏览器 3种更改默认浏览器方法
  13. UOJ #589. 图图的游戏
  14. 胖大海和罗汉果可以同泡吗
  15. 【小程序流量主】小程序如何快速流量主
  16. 照片的读取、显示和保存
  17. WORDBOOK - ForeverStrong Cheng - YongQiang Cheng
  18. 自媒体各大平台收益对比_各大自媒体平台的收益收益如何 以下是我个人的一个汇总...
  19. 总线(二)CAN通讯协议介绍
  20. 使用python自动提交调查问卷

热门文章

  1. CodeForces - 1491E Fib-tree(模拟)
  2. 中石油训练赛 - Plan B(点双缩点+树形dp)
  3. CodeForces - 1409F Subsequences of Length Two(dp)
  4. HDU多校3 - 6798 Triangle Collision(几何+旋转坐标系)
  5. HDU - 6602 Longest Subarray(线段树+思维)
  6. 制作linux安装镜像文件,制作CentOS 6.5一键自安装ISO镜像光盘 | 聂扬帆博客
  7. 安卓app 获取view的id_隐私保护问题不小 研究表示1325个安卓APP未经授权获取用户数据...
  8. 排序算法-02直接插入(python实现)
  9. deque与vector的主要区别
  10. 关于 AfxSocketInit() 的使用