JAVA的四種引用型別的作用——強引用、軟引用、弱引用、虛引用
阿新 • • 發佈:2018-12-27
java有四種引用型別,分別是強引用、軟引用、弱引用、虛引用。
背景:我們希望有這樣一種場景像快取一樣,
即:在記憶體還足夠時,希望能夠保留這些物件,當記憶體不夠時,則刪除這些物件(當然是由垃圾回收完成)。
四種引用的強度:強引用(Strong Reference)>軟引用(Soft Reference)>弱引用(Weak Reference)>(Phantom Reference)
強引用:即我們日常的操作,像:Object obj=new Object(); 有一個引用指向這個物件。
只要強引用還存在就不會被垃圾回收執行緒回收了。
軟引用:即那些不是必需的物件,在發生記憶體溢位之前,被垃圾回收程式標記,並在第二次垃圾回收時進行回收,如果還是不夠內
存則丟擲記憶體溢位異常。
關鍵類:SoftReference;
弱引用:即無論記憶體是否足夠只要垃圾回收器觸發,就會把弱引用引用的物件當作垃圾回收掉。
關鍵類:WeakReference
虛引用:一個物件是否有虛引用存在,完全不會對物件的生存時間構成影響,也無法通過虛引用獲得一個物件例項,為一個物件
設定虛引用的唯一目的就是在這個物件被收集器回收時返回一個系統通知。
關鍵類:Phantom Reference