Java的四種引用方式

  1. 強引用:是最傳統的“引用”的定義,是指在程序代碼中普遍存在的引用賦值,即類似“Object obj=new Object()”這種引用關係。無論任何情況下,只要強引用關係還存在,垃圾收集器就永遠不會回收掉被引用的對象。(只要強引用關係存在,收集器就不會回收)
  2. 軟引用:是描述一些還有用,但非必須的對象。只被軟引用關聯着的對象,在系統將要發生內存溢出異常前,會把這些對象列進回收範圍之中進行第二次回收,如果這次回收還沒有足夠的內存,纔會拋出內存溢出異常。(一般情況不會回收,如果內存不夠要溢出時纔會進行回收)
  3. 弱引用:也是用來描述那些非必須對象,但是它的強度比軟引用更弱一些,被弱引用關聯的對象只能生存到下一次垃圾收集器發生爲止。當垃圾收集器開始工作,無論當前內存是否足夠,都會回收掉只被弱引用關聯的對象。在JDK1.2版本之後提供了WeakReference類來實現弱引用。(當下一次垃圾收集器開始工作時,無論內存是否足夠,都會進行回收)
  4. 虛引用:也稱爲“幽靈引用”或者“幻影引用”,它是最弱的一種引用關係。一個對象是否有虛引用存在,完全不會對其生存時間構成影響,也無法通過虛引用來取得一個對象的實例。爲一個對象設置虛引用的唯一目的只是爲了能在這個對象被回收時收到一個系統的通知。在JDK1.2版之後提供了PhantomReference類來實現虛引用。(回收時獲得消息)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章