JAVA的四种引用类型
【死记硬背】
Java的引用类型有强引用、软引用、弱引用和虚引用。强引用
在Java中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到JVM也不会回收。因此强引用是造成Java 内存泄漏的主要原因之一。软引用
软引用需要用SoftReference类来实现,对于只有软引用的对象来说,当系统内存足够时它不会被回收,当系统内存空间不足时它会被回收。软引用通常用在对内存敏感的程序中。弱引用
弱引用需要用WeakReference类来实现,它比软引用的生存期更短,对于只有弱引用的对象来说,只要垃圾回收机制一运行,不管JVM的内存空间是否足够,总会回收该对象占用的内存。虚引用
虚引用需要PhantomReference类来实现,它不能单独使用,必须和引用队列联合使用。虚引用的主要作用是跟踪对象被垃圾回收的状态。
【答案解析】
下面简单写了下强引用、软引用、弱引用和虚引用的使用代码,大家可以简单了解下。import java.lang.ref.PhantomReference; import java.lang.ref.ReferenceQueue; import java.lang.ref.SoftReference; import java.lang.ref.WeakReference; public class ReferenceTest { public static void main(String[] args) { // 1 强引用:reference为Reference对象实例的强引用 Reference reference = new Reference(); // 此时Reference的实例不可达 reference = null; // 2 弱引用:弱引用引用的对象,只要系统触发了GC就可能会被直接回收 WeakReference weakReference = new WeakReference(new Reference()); // 将弱引用转为强引用 Reference strongReference = weakReference.get(); weakReference.get().show(); // 3 软引用:软引用引用的对象,在内存不足时可以被回收 SoftReference softReference = new SoftReference(new Reference()); softReference.get().show(); // 4 虚引用:主要用于记录被回收的对象 ReferenceQueue queue = new ReferenceQueue<>(); PhantomReference phantomReference = new PhantomReference<>(new Reference(),queue); phantomReference.get().show(); // 手动启动GC:告诉JVM有时间过来回收一些内存 System.gc(); // 模拟内存不足 byte[] b1 = new byte[1024*1024]; byte[] b2 = new byte[1024*1024]; byte[] b3 = new byte[1024*1024]; byte[] b4 = new byte[1024*1024]; System.out.println("Game over!"); } } class Reference{ public void show(){ System.out.println("Reference show!"); } @Override protected void finalize() throws Throwable{ System.out.println("finalize!"); } }
【温馨提示】
点赞+收藏文章,关注我并私信回复【面试题解析】,即可100%免费领取楼主的所有面试题资料!
人族三祖三皇五帝人族三祖是人族发展初期最重要的三个人,是他们带着原始的人族走出原始的生活。有两种说法伏羲燧人神农燧人有巢缁衣(现代网络小说一般采用第二种说法)燧人氏,三祖之一,是中国华夏人工起火的
古代十大猛将所谓乱世出英雄,乱世也出猛将,中国历史上的乱世应自秦末楚汉相争开始,后有三国南北朝隋唐五代十国辽金元明,所以猛将也应出在这些时期。猛将与其他将领不同之处,就是猛将善于冲锋陷阵,单枪
民间五大家仙ampampquot狐黄白柳灰ampampquot民间五仙狐黄白柳灰,五大仙又叫五大家或五显财神。狐仙(狐狸)黄仙(黄鼠狼)白仙(刺猬)柳仙(蛇)灰仙(老鼠),民间俗称狐黄白柳灰(或称灰黄狐白柳)为五大仙。民间对动物的崇拜主要体现
清代三大棋圣及围棋四大家施襄夏程兰如范西屏梁魏今并称清代围棋四大家。施襄夏范西屏黄龙士并称清代三大棋圣。施襄夏施襄夏,名绍暗,字襄夏,号定庵,浙江海宁人,清代著名围棋国手。幼时性拙喜静,羸弱多病,受父熏陶
血族十三氏族(以下内容来源网络收集,请勿信以为真,仅当笑谈。)血族即吸血鬼,但它们并不称呼自己为Vampires,而通常自称为Kindred。吸血鬼(vampire)是西方世界里著名的魔怪,之
欧布奥特曼中的六大魔王兽魔王兽名字中的(祸魔格玛伽Maga)来自于日本神话中的祸津日神()的。太古时期,来自怪兽银河的大魔王兽玛伽大蛇的卵降临在了地球上。其卵的能量结合地球上的六种元素诞生了六大魔王兽并开
古代十大名枪霸王枪霸王枪,相传是项羽少时,学书不成,学剑亦不成,偏要学万人敌。可这万人敌,除了讲究兵法,随身兵器也是需要,项羽的叔父项梁寻思,这娃天赋神力,使剑未必应手,于是为其私人订制一把霸
九大上古神兽,进化完全后则为真龙蟠龙(无云)在中国神话中,蟠龙是水龙,被认为居住在东方的湖中。与蛟龙一样,和雨与水有很深厚的关系,但顶多只有保证所在的泉水不枯竭。因为蟠无法飞行,而且没有长角,所以有人亦有蟠龙是雌
喜茶的上市疑云1500亿的估值,真能吃得下吗?有了奈雪的茶的前车之鉴,喜茶可能要更冷静地去面对估值与上市的问题。或许喜茶几次三番地否定上市不是什么烟雾弹,而是真的没准备好如何面对被资本越堆越高的估值。本文由无冕财经(wumia
拆了东墙补西墙,泛海系想自救难上加难抛售资产,拍卖股权,引入战略投资者,质押融资,泛海系可谓是拆了东墙补西墙,想尽办法自救。闪转腾挪,却仍是捉襟见肘。想捞到一个救生圈,看来有点难。本文由无冕财经(wumiancaij
广西一个假的南方沿海省份这是一个内部非常多元化但也正因此缺乏有效内部整合机制的省份。在这种情况下,它虽享有极具优势的地理位置和种种资源,但却无法充分发挥出自己的潜力。本文由无冕财经(wumiancaiji