Java中有哪些引用方式
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,今天就跟大家聊聊有关Java中有哪些引用方式,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。强引用>软引用>弱引用>虚引用1.强引用强引用,强在
千家信息网最后更新 2025年02月02日Java中有哪些引用方式虚引用在JDK中是指java.lang.ref.PhantomReference
今天就跟大家聊聊有关Java中有哪些引用方式,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
强引用>软引用>弱引用>虚引用
1.强引用
强引用,强在哪里?强在"JVM即使内存溢出,也不会让GC去随便的回收强引用对象所占用的内存空间"。其原因也容易理解,如果GC将上述的ref回收了,那么new Object()这个对象将毫无意义,后续所有使用ref的代码也将出错。
强引用,什么时候会失效?只有当强引用的值被置为 null 或作用域失效后,GC才会将强引用对象纳入被回收的范围。
2.软引用
当JVM的内存足够时,GC对待软引用和强引用的方式是一样,即不会主动回收软引用对象;但当JVM的内存不足时,GC就会去主动回收软引用对象。
也可以这么理解:JVM只会在抛出OutOfMemory之前回收软引用对象。
强引用可以直接通过关键字new产生,而软引用需要借助JDK提供的java.lang.ref.SoftReference
在软引用、弱引用和后面要讲的虚引用中都有一个get()方法(实际都是继承父类Reference而来),此方法用于获取引用所指向的引用对象。如下,就是通过get()方法获取了软引用所指向的ObjectDemo对象。
class ObjectDemo {
public void method(){}
}
public class ReferenceDemo {
public static void main(String[] args) throws Exception {
SoftReference softReference = new SoftReference<>(new ObjectDemo());
ObjectDemo obj = softReference.get();
}
}
3.弱引用
弱引用在JDK中是指java.lang.ref.WeakReference
4.虚引用
虚引用在JDK中是指java.lang.ref.PhantomReference类,虚引用也称为幻影引用或幽灵引用。虚引用是所有引用级别中最低的一个,甚至于"是否使用虚引用对于一个对象本身来说都没有任何区别",并且我们也无法通过虚引用来获取一个对象实例。虚引用一般会和引用队列(ReferenceQueue)一起使用,其价值在于:当GC在回收某个对象时,如果发现这个对象还存在虚引用,就会在回收此对象前先把这个虚引用存放到相应的引用队列中,并且在这个虚引用出队前,不会回收对应的虚引用对象。因此,我们可以通过分析引用队列中虚引用的数量,来估算GC回收的频率,或者赶在虚引用对象在被回收前进行一些额外的操作。
看完上述内容,你们对Java中有哪些引用方式有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
对象
内存
方式
主动
内容
队列
指向
方法
充足
最低
代码
价值
作用
关键
关键字
原因
只有
可以通过
垃圾
实例
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
web服务器性能监控
软件开发如何验证逻辑
dnf服务器开机时间
万方数据库dns
加强工会数据库动态管理
数据库老师的评价
软件开发窗体
安徽dell服务器推荐
网络技术技能考核
天津专业软件开发价钱
中国网络安全行业龙头股
网络技术部经理的职责
杭州网络技术开发有限公司
未来网络安全发展趋势展望
北京警察学院网络安全毕业照
EV2数据库的主页面包括
计算机网络技术考不到证
sql2016数据库备份到群晖
时钟源服务器没有的影响
网络技术密码
台州羽化网络技术
plsql删一列数据库
常州运维管理软件开发
广州管理软件开发代码
行业网络安全ppt
哪个证券公司网络安全
莱顿基因数据库
传奇 mdb数据库
ps4迁移数据库
吴江区提供网络技术有哪些