Java中的四种引用类型
hello大家好,好久不见,我是java大侠。最近刚刚毕业进入了校招公司,发现技术基础还是很重要,所以特地立下决心,每日分享一个关于Java相关知识的总结,希望能够伴随大家一起成长。
在Java中一切皆对象,对象的操作就是通过该对象的引用(reference)实现的。在Java中,对象的引用一共有强引用,弱引用,软引用,虚引用共计四种类型
强引用
强引用在Java中是我们最常见的。在把一个对象赋值给一个引用变量时,我们就称这个引用变量是一个强引用。
Object t = new Object();
t变量就相当于一个强引用。
有强引用的对象一定为可达性状态,它是不会被垃圾回收机制回收的。
因此,强引用是造成Java内存泄漏(Memory Link)的主要原因。
弱类型
软引用通过SoftReference类实现。如果一个对象只有软引用,则在系统内存空间不足时该对象将被回收。
软类型
弱引用通过WeakReference类实现,如果一个对象只有弱引用,则在垃圾回收过程中一定会被回收。
虚类型
虚引用:虚引用通过PhantomReference类实现,虚引用和引用队列联合使用,主要用于跟踪对象的垃圾回收状态。