Java中引用类型分为四种
强引用、软引用、弱引用、虚引用
强引用
程序中一般使用的引用类型
eg.
String a = new String(“Hello”);
特点:
1.可以直接访问引用的目标对象
2.所指向的对象任何时候都不会被系统回收
3.强引用可能导致内存泄漏。
软引用
使用java.lang.ref.SoftReference 类实现
SoftReference<
Object
> temp = Object
特点:
当JVM堆空间不足的时候会被回收
弱引用
使用java.lang.ref.WeakReference 类实现
WeakReference<
Object
> temp = Object
特点:
当GC时就会被回收
虚引用
持有虚引用的对象和没有持有引用是一样的。随时都可能被回收。
并且不能通过虚引用访问对象
不过虚引用可以跟踪垃圾回收过程。
当垃圾回收器回收对象是,发现它有虚引用,便在回收对象后将虚引用加入引用队列。
标识该对象回收情况