四種引用方式
1、強引用(StrongReference)
2、軟引用(SoftReference)
3、弱引用(WeakReference)
4、虛引用(PhantomReference)
強引用(StrongReference)
1、隻要某個對象有強引用與之關聯,JVM必定不會回收這個對象
2、即使記憶體不足,JVM甯願抛出OutOfMemory錯誤也不會回收這種對象
例:
Object object = new Object();
String str = "hello";
軟引用(SoftReference)
1、用來描述一些有用但并不是必需的對象
2、對于軟引用關聯着的對象,隻有在記憶體不足的時候JVM才會回收該對象
3、很适合用來實作緩存:比如網頁緩存、圖檔緩存等
例如:
SoftReference aSoftRef = new SoftReference(aRef);
弱引用(WeakReference)
1、弱引用是用來描述非必需對象的
2、當JVM進行垃圾回收時,無論記憶體是否充足,都會回收被弱引用關聯的對象。
例如:
WeakReference<People> reference = new WeakReference<People>(new People());
虛引用(PhantomReference)
1、不影響對象的生命周期
2、如果一個對象與虛引用關聯,則跟沒有引用與之關聯一樣
3、在任何時候都可能被垃圾回收器回收
ReferenceQueue<String> queue = new ReferenceQueue<String>();
PhantomReference<String> pr = new PhantomReference<String>(new String("hello"), queue);