1、特点:
随着时间的推移,其中的元素会被垃圾回收器回收
2、涉及到的4中引用:
强引用:(StrongReference) 就是指在程序代码之中普遍存在的,例如以下代码:
Object object = new Object();
String str = "hello";
强引用关联的对象在内存不够时也不会被垃圾回收器回收,
回收时间:当前对象为null时被回收;
软引用:(SoftReference) 用来描述一些有用但并不是必需的对象
软引用对象,如果内存不足,此对象会被回收;
在Java中用java.lang.ref.SoftReference类来表示
SoftReference<String> sr = new SoftReference<String>(new String("hello"));
弱引用:(WeakReference)弱引用也是用来描述非必需对象的,
当JVM进行垃圾回收时,无论内存是否充足,都会回收被弱引用关联的对象
用java.lang.ref.WeakReference类来表示
WeakReference<String> sr = new WeakReference<String>(new String("hello"));
虚引用:(PhantomReference)不影响对象的生命周期,一般用于检测此对象是否被回收。
如果一个对象与虚引用关联,则跟没有引用与之关联一样,在任何时候都可能被垃圾回收器回收。
在java中用java.lang.ref.PhantomReference类表示
如弱引用和软引用的区别:
3、垃圾回收机制
jvm分区:
共享:堆、方法区,
私有:本地方法栈,虚拟机栈、程序计数器