博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java四种引用包括强引用,软引用,弱引用,虚引用。
阅读量:6690 次
发布时间:2019-06-25

本文共 972 字,大约阅读时间需要 3 分钟。

1. StrongReference --- 强引用

StrongReference 是 Java的默认引用实现, 它会尽可能长时间的存活于 JVM 内, 当没有任何对象指向它时 GC 执行后将会被回收;Object object = new Object();上面的对象就是拥有强引用。想要gc回收这个对象,就需要显式的将object = null ,那么对象就不存在引用关系复制代码

2.SoftReference --- 软引用

软引用的强度是仅次于强引用的,如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。   在jvm内存不够的时候就会回收拥有软引用的对象,在jvm内存充足的时候不会回收复制代码

我们可以使用java.lang.ref.SoftReference来创建软引用;

String str=new String("abcd");                                     // 强引用  SoftReference
softRef=new SoftReference
(str); // 软引用 复制代码

当内存不足时,等价于: If(JVM.内存不足()) {

str = null; // 转换为软引用
System.gc(); // 垃圾回收器进行回收
}

3. WeakReference --- 弱引用

WeakReference 是一个弱引用, 当所引用的对象在 JVM 内不再有强引用时, GC 后 weak reference 将会被自动回回收时机:在垃圾回收的时候;使用:同软引用; 生命周期:GC后终止复制代码

4.PhatomReference --- 虚引用

一个对象是否有虚引用的存在,完全不会对其生存时间构成影响,也无法通过虚引用来获取一个对象的实例。为一个对象设置虚引用关联的唯一目的就是能在这个对象被收集器回收时收到一个系统通知。复制代码

转载于:https://juejin.im/post/5b8743b2518825717e191dfb

你可能感兴趣的文章
centos 7 配置 iptable-service
查看>>
Spring AOP之简单实践
查看>>
Nexenta:软件定义存储新锐欲创领主流
查看>>
我的友情链接
查看>>
Linux运维系统工程师与java基础学习系列-4
查看>>
我的友情链接
查看>>
嵌入式设备上的linux开发
查看>>
[源码分享]本地文件的读写
查看>>
JavaScript表单验证插件大全
查看>>
SQL Server2000远程登录常见问题
查看>>
Activity的LaunchMode
查看>>
Centos命令行安装软件
查看>>
我的友情链接
查看>>
cookie记录最近浏览商品记录(取最新的五个浏览记录)
查看>>
CentOS配置snmp代理
查看>>
淘宝的搜索核心是什么?
查看>>
项目进度管理及成本管理知识要点
查看>>
Linux服务器上监控网络带宽的18个常用命令
查看>>
【java解惑】多重强转引发的问题
查看>>
用goaccess每天自动分析nginx日志
查看>>