java中四种引用

简介: java中四种引用

Java中的四种引用


Java中四种引用类型:强引用,软引用,弱引用,强引用


强引用


通过new 去进行创建的对象的引用


通过手动调用gc,并且将引用赋值为null进行回收


软引用


软引用就是把对象用SoftReference包裹一下,当我们需要从软引用对象获得包裹的对象,只需要get一下就好了

SoftReference<TestQuote> testQuoteSoftReference = new SoftReference<>(new TestQuote());
TestQuote testQuote = testQuoteSoftReference.get();
System.out.println(testQuote);

软引用的特点是:


当内存不足,会触发JVM的GC,如果GC后,内存还是不足,就会把软引用包裹的对象给清除,也就是当JVM的内存不足的时候,才会回收该对象。


弱引用


弱引用的使用和软引用类型,只是关键字变成了WeakReference:

WeakReference<byte[]> weakReference = new WeakReference<>(new byte[1024*1024*10]);
    System.out.println(weakReference.get());

内存还是很足够的时候,但是触发了GC,资源还是内存回收了


虚引用

ReferenceQueue queue = new ReferenceQueue();
        PhantomReference<byte[]> reference = new PhantomReference<>(new byte[1],queue);
        System.out.println(reference.get());

当发生GC,虚引用就会被回收,并且会把回收的通知放到ReferenceQueue中。

目录
打赏
0
0
0
0
0
分享
相关文章
从零开始学习 Java:简单易懂的入门指南之不可变集合、方法引用(二十六)
从零开始学习 Java:简单易懂的入门指南之不可变集合、方法引用(二十六)
java面试题目 强引用、软引用、弱引用、幻象引用有什么区别?具体使用场景是什么?
【6月更文挑战第28天】在 Java 中,理解和正确使用各种引用类型(强引用、软引用、弱引用、幻象引用)对有效的内存管理和垃圾回收至关重要。下面我们详细解读这些引用类型的区别及其具体使用场景。
111 3
|
9月前
|
滚雪球学Java(41):Lambda表达式和方法引用:提高代码可读性和简洁性的神器
【5月更文挑战第16天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
74 2
滚雪球学Java(41):Lambda表达式和方法引用:提高代码可读性和简洁性的神器
|
8月前
|
java方法引用::
java方法引用::
|
7月前
|
开发与运维引用问题之软引用又在Java特点如何解决
开发与运维引用问题之软引用又在Java特点如何解决
59 0
Java一维数组元素的引用与操作技术详解
Java一维数组元素的引用与操作技术详解
105 1
【JAVA学习之路 | 进阶篇】方法引用与构造器引用
【JAVA学习之路 | 进阶篇】方法引用与构造器引用
Java的数组定义与引用
Java的数组定义与引用
Java二维数组的引用与操作技术详解
Java二维数组的引用与操作技术详解
142 0
【Java】以数组为例简单理解引用类型变量
【Java】以数组为例简单理解引用类型变量
87 1

热门文章

最新文章