四種引用類型

1. 概念

"萬事萬物皆對象"是Java語音設置之處的理念之一等限∥荼耄《Java編程思想》中寫到:“按照通俗的說法,每個對象都是某個類(class)的實例(instance)握玛,這里够傍,“類”就是“類型”的同義詞”。同時對象調(diào)方法挠铲。

“每種編程語言都有自己的數(shù)據(jù)處理方式冕屯。有些時候,程序員必須注意將要處理的數(shù)據(jù)是什么類型市殷。你是直接操作數(shù)據(jù)愕撰,還是用某種基于特殊語法的間接表示(例如C/C++里的指針)來操作對象。所有這些在Java里面都得到了簡化,一切都被視為對象搞挣。因此带迟,我們可以采用一種統(tǒng)一的語法。盡管將一切都“看作”對象囱桨,但是操縱的標識符實際是指向一個對象的“引用”(reference)”.

2. 引用的類型

在JDK1.2之后仓犬,Java對于引用的感念進行了擴充,將引用分為強引用(Strong Reference)舍肠、軟引用(Soft Reference)搀继、弱引用(Weak Reference)、虛引用(Phantom Reference)四種引用類型翠语。這四種引用類型的引用強度依次逐漸遞減叽躯。

四種引用類型的基本邏輯

3. 各自概念與用法

強引用:

強引用在代碼中普遍的存在,類似與“Object obj = new Object();”只要某個對象有強引用與之關聯(lián)肌括,JVM則無法回收該對象点骑,即使在內(nèi)存不足的情況下,JVM寧愿拋出OutOfMemory錯誤谍夭,也不會回收這種對象黑滴。

軟引用:

軟引用常常用來描述一些有用但是非必需的對象。對于軟引用關聯(lián)的對象紧索,會在JVM內(nèi)存不足時既OutOfMemory之前將這些對象列入回收范圍袁辈,進行二次回收。如果這時回收還是沒有足夠的內(nèi)存才會造成內(nèi)存溢出異常珠漂。在JDK1.2之后晚缩,提供了SoftReference類來實現(xiàn)軟引用。軟引用一般用于網(wǎng)頁的緩存圖片的緩存等等比較耗時的操作甘磨,但是這些操作目前一般使用LruChche來實現(xiàn)橡羞,因此目前代碼中很少見到SoftReference。

弱引用:

弱引用也是用來描述非必要對象的济舆,但是它的輕度比軟引用要弱一些,被弱引用關聯(lián)的對象只能生存到下一次垃圾收集器回收之前莺债,當JVM進行gc操作時滋觉,無論當前內(nèi)存是否足夠,都會回收掉只被弱引用關聯(lián)的對象齐邦。在JDK1.2以后椎侠,提供了WeakReference類來實現(xiàn)弱引用。弱引用的使用范圍也很小措拇,Android 中最常見的是WeakHandler

虛引用

虛引用也稱之為幽靈引用我纪,或者幻影引用,它是最弱的一種引用關系,一個對象是否有虛引用的存在浅悉,完全不會對其生存時間構成影響趟据。也無法通過虛引用來取得一個對象的實例,為一個對象設置為虛引用的唯一目的是希望這個對象被回收器回收時夢收到一個系統(tǒng)通知术健,在JDK1.2之后汹碱,提供了PhantomReference類來實現(xiàn)虛引用。沒有遇到過

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末荞估,一起剝皮案震驚了整個濱河市咳促,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌勘伺,老刑警劉巖跪腹,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異飞醉,居然都是意外死亡尺迂,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門冒掌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來噪裕,“玉大人,你說我怎么就攤上這事股毫∩乓簦” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵铃诬,是天一觀的道長祭陷。 經(jīng)常有香客問我,道長趣席,這世上最難降的妖魔是什么兵志? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮宣肚,結果婚禮上想罕,老公的妹妹穿的比我還像新娘。我一直安慰自己霉涨,他們只是感情好按价,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著笙瑟,像睡著了一般楼镐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上往枷,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天框产,我揣著相機與錄音凄杯,去河邊找鬼。 笑死秉宿,一個胖子當著我的面吹牛戒突,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蘸鲸,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼妖谴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了酌摇?” 一聲冷哼從身側(cè)響起膝舅,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎窑多,沒想到半個月后仍稀,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡埂息,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年技潘,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片千康。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡享幽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拾弃,到底是詐尸還是另有隱情值桩,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布豪椿,位于F島的核電站奔坟,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏搭盾。R本人自食惡果不足惜咳秉,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鸯隅。 院中可真熱鬧澜建,春花似錦、人聲如沸滋迈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽饼灿。三九已至,卻和暖如春帝美,著一層夾襖步出監(jiān)牢的瞬間碍彭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留庇忌,地道東北人舞箍。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像皆疹,于是被迫代替她去往敵國和親疏橄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容