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分區:
共享:堆、方法區,
私有:本地方法棧,虛擬機棧、程序計數器