
java reference
华山拎壶冲
不积跬步,无以至千里。。。
面试必备:https://www.jianshu.com/u/c3be0f69940b
展开
-
源码分析之FinalReference完全解读
概述JAVA对象引用体系除了强引用之外,出于对性能、可扩展性等方面考虑还特地实现了四种其他引用:SoftReference、WeakReference、PhantomReference、FinalReference,本文主要想讲的是FinalReference,因为我们在使用内存分析工具比如zprofiler、mat等在分析一些oom的heap的时候,经常能看到 java.lang.ref.F...转载 2019-08-17 17:29:24 · 228 阅读 · 0 评论 -
Java 引用类型简述
强引用 ( Strong Reference )强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。 ps:强引用其实也就是我们平时A a = new A()这个意思。强引用特性 强引用可以直接访问目标对象。 强引用...转载 2019-08-17 17:45:39 · 121 阅读 · 0 评论 -
Reference 、ReferenceQueue 详解
ReferenceQueue引用队列,在检测到适当的可到达性更改后,垃圾回收器将已注册的引用对象添加到该队列中实现了一个队列的入队(enqueue)和出队(poll还有remove)操作,内部元素就是泛型的Reference,并且Queue的实现,是由Reference自身的链表结构( 单向循环链表 )所实现的。ReferenceQueue名义上是一个队列,但实际内部并非有实际的存储结...转载 2019-08-17 17:56:47 · 2019 阅读 · 0 评论 -
java中的强引用(Strong reference),软引用(SoftReference),弱引用(WeakReference),虚引用(PhantomReference)
之前在看深入理解Java虚拟机一书中第一次接触相关名词,但是并不理解,只知道Object obj = new Object()类似这种操作的时候,obj就是强引用。强引用不会被gc回收直到gc roots不可达时。而对其他三个名词并不清楚,因为并没有被真正使用过。通过查看软引用,弱引用和虚引用的源码,可以看出这三个类都是继承自Reference。一 、概念1.1软引用(SoftRef...原创 2019-08-14 20:58:34 · 535 阅读 · 0 评论 -
利用虚引用PhantomReference实现对象被回收时收到一个系统通知
虚引用PhantomReference,在<<深入理解Java虚拟机>>一文中,它唯一的目的就是为一个对象设置虚引用关联的唯一目的就是能在这个对象被收集器回收时收到一个系统通知。那么如何实现呢?它与ReferenceQueue配合使用来实现,下面给出代码示例:import java.lang.ref.PhantomReference;import java.lan...转载 2019-08-15 17:26:11 · 621 阅读 · 0 评论