每日一道面试题之Java中都有哪些引用类型?

news/2024/11/29 8:37:55/

在 Java 中,引用类型指向的数据在堆中分配,而基本类型的变量和对象的引用变量存储在栈内存中,但引用类型实际的对象存储在堆内存中。

Java 中有以下四种引用类型:

强引用(Strong Reference):

Java中默认声明的就是强引用,它是最常用的引用类型,**只要强引用存在,那么垃圾回收器将永远不会回收被引用的对象。如果想被回收,可以将对象置为null **。

比如,使用 new关键字 创建的对象,所产生的引用就是强引用,例如:

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

软引用(Soft Reference):

内存足够的时候,软引用不会被回收,软引用在系统内存不够时,才会被垃圾回收器回收。

当垃圾回收器决定要回收内存时,只会回收软引用对象所指向的堆内存对象,并且只有在内存不足时才会进行回收,如果回收了软引用对象之后仍然没有足够的内存,就会出现内存溢出异常。例如:

// 软引用
SoftReference<Object> softRef = new SoftReference<Object>(obj); 

弱引用(Weak Reference):

弱引用不会阻止其所指向的对象被回收当垃圾回收器扫描到弱引用时,无论 JVM 内存是否足够,都会将引用指向的对象回收,例如:

 // 弱引用
WeakReference<Object> weakRef = new WeakReference<Object>(obj);

虚引用(Phantom Reference):

最弱的引用类型虚引用不能单独使用,必须和引用队列(ReferenceQueue)合作使用。

当垃圾回收器把一个对象回收时,如果这个对象有一个虚引用,则会将这个虚引用加入到与之关联的引用队列中程序可以通过判断引用队列中是否加入了引用,来判断被引用的对象是否将要被垃圾回收,这样可以在对象被回收之前采取一些必要的措施
例如:

// 虚引用
PhantomReference<Object> phantomRef = new PhantomReference<Object>(obj, queue); 

Java 中的引用类型都可以通过一些工厂方法创建,比如 java.lang.ref.SoftReferencejava.lang.ref.WeakReferencejava.lang.ref.PhantomReference,这些引用类型可以有效地管理内存,避免内存泄漏。


http://www.ppmy.cn/news/414967.html

相关文章

计算机网络之网络层:数据平面

四.网络层&#xff1a;数据平面 4.1 网络层概述 网络层被分解为两个相互作用的部分&#xff0c;即数据平面和控制平面。 数据平面决定到达路由器输入链路之一的数据报如何转发到该路由器的输出链路之一&#xff0c;转发方式有&#xff1a; 传统的IP转发&#xff1a;转发基于…

【网游服务端】新版天龙八部带桃花岛一键安装即玩服务端+安装教程

下载链接&#xff1a;https://pan.baidu.com/s/1ds_xFq1Rd1_xC4515BRGXw 提取码&#xff1a;soho

天龙八部音乐文件提取

两年前&#xff0c;我接触到这个网游&#xff0c;可以这么说&#xff0c;在中国游戏界世风日下的大环境下&#xff0c;天龙八部还是不错的。不仅仅是因为原著出自金庸大侠之手&#xff0c;他的成功更在于他的游戏的制作水平。所以也激起了菜鸟我的研究欲望&#xff0c; 虽不是什…

天龙八部ol卡彩色名字分析

天龙八部封包分析 本教程针对刚刚接触这方面的新手学习思考&#xff0c;大神请不要喷。 所以游戏封包都是一个原理&#xff0c;就是通过对服务器发包&#xff0c;然后用工具拦截下你所发的封包&#xff0c;在封包里面加以修改&#xff0c;已达到欺骗服务器。 最早的WPE跟现在的…

天龙八部游戏服务器防护DDos有哪些方法?

网游《天龙八部》是一部非常优秀的国产网络游戏。 《天龙八部》是一款独立自主研发的武侠网游巨制&#xff0c;搜狐对《天龙八部》的研发过程投入巨额资金&#xff0c;并许以年度武侠巨制的超级阵容精心打造。由于每个参与到《天龙八部》研发和运营的工作人员都秉承着将最好的产…

天龙八部TLBB从0到1搭建教程-上

服务器的配置选择与购买 我们需要准备的东西,是环境安装和4核8G的服务器一台。 其实购买服务器的地方很多以下这些服务商都可以,具体看服务器的配置选择,像这种4核8G的 服务器价格在260-400之间一台仅供参考,当然还有带防的服务器价格就偏高了阿里云、腾讯、百度、西部数码…

天龙八部服务器列表文件,TLBB服务端目录文件作用

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 TLBB服务端目录文件作用 \tlbb\Public\Config\ShopTable.txt 元宝商店加东西,最后一行178是卖6级宝石,提供参考 \tlbb\Server\Config\SceneInfo5.ini 公告内容 \tlbb\Server\Config\NotifyOnline.txt 登陆游戏提示信息位置 \tlbb…

天龙八部本服务器的注册码,天龙八部服务端配置! - 网游单机讨论 - 藏宝湾网游单机站 - Powered by Discuz!...

本帖最后由 tfblc 于 2010-12-12 23:45 编辑 如题,相比这个问题真的困扰了很多新手了吧,老鸟肯定是知道了的。我很是不解,这win上的oracle数据库和Linux上的SQL数据库有什么联系和区别。他们之间进行交换的是什么数据。 相较而言,在服务端下,Billing中,需要配置的文件,分…