Final葵腹、Finally和Finalize

Final+Finally+Finalize

Final

final 關(guān)鍵字是一種訪問控制標識符践宴∫常可用于修飾變量、方法运授、類。

final 變量:(變量柒室、成員或參數(shù))

當(dāng)發(fā)生參數(shù)傳遞或變量被初始化時逗宜,final修飾的變量在程序后續(xù)執(zhí)行過程中不能被改變纺讲。若變量被定義為final,并且未被初始化時熬甚,必須先經(jīng)由初始化塊或構(gòu)造器將其初始化后才能使用。

final 方法:

被定義為final的方法不能被子類重寫复局。

final 類:

當(dāng)類被定義為final時粟判,該類將不能派生子類档礁。類被定義為final時,將使得其中的成員和方法被隱示定義為final。

Finally

用于顯示回收try塊里打開的物理資源(例如數(shù)據(jù)庫連接惨险、網(wǎng)絡(luò)連接和磁盤文件等等)脊髓。

<span style="background:yellow">Java的垃圾回收機制不會回收任何物理資源,只能回收堆內(nèi)存中對象所占用的內(nèi)存恭朗。</span>

完整的Java異常處理語法如下:

try
{
    ...
}
catch(SubException e)
{
    ...
}
catch(SubException2 e)
...
finally
{
    //資源回收
    ...
}

異常處理語法結(jié)構(gòu)規(guī)則:

  • 只有try塊是必需的依疼,如果沒有try塊,則不能有后面的catch塊和finally塊
  • catch塊和finally塊都是可選的膀值,但catch塊和finally塊至少出現(xiàn)其中之一沧踏,也可同時出現(xiàn)
  • 可以有多個catch塊巾钉,捕獲父類異常的catch塊必須位于捕獲子類異常的后面
  • 不能只有try塊,catch塊和finally塊都沒有
  • 多個catch塊必須位于try塊之后睛琳,finally塊必須位于所有的catch塊之后
  • 不要在finally塊中使用return或throw等導(dǎo)致方法終止的語句师骗,一旦如此。將會導(dǎo)致try塊寒屯、catch塊中的return、throw語句失效

不管try塊中的代碼是否出現(xiàn)異常寡夹,也不管哪一個catch塊被執(zhí)行菩掏,甚至在try塊或catch塊中執(zhí)行了return語句昵济,finally塊總會被執(zhí)行野揪。不過若在try塊或catch塊中調(diào)用了退出虛擬機的方法,則finally塊中的代碼不會執(zhí)行斯稳。

Finalize

在垃圾回收機制回收某個對象所占用的內(nèi)存之前挣惰,通常要求程序調(diào)用適當(dāng)?shù)姆椒▉砬謇碣Y源,在沒有明確指定清理資源的情況下憎茂,Java提供了默認機制來清理該對象的資源唇辨,這個機制就是finallize()方法能耻。

finalize()方法是定義在Object類中的實例方法亡驰。

protected void finalize() throws Throwable

當(dāng)finalize()方法返回后,對象消失戒职,垃圾回收機制開始執(zhí)行洪燥。方法原型中的throws Throwable表示該方法可拋出任何類型的異常乳乌。

若程序終止之前沒有進行垃圾回收,則不會調(diào)用失去引用對象的finalize()方法來清理資源汉操。 垃圾回收機制何時調(diào)用對象的finalize()方法是完全透明的磷瘤。


下面介紹一下Java中引用的類型:

對象的軟、弱和虛引用

  1. 強引用(StrongReference)

    Java程序中最常見的應(yīng)用方式针炉。程序創(chuàng)建一個對象扳抽,并把這個對象賦給一個引用變量绩社,程序通過該引用變量來操作實際的對象愉耙。當(dāng)一個或一個以上的引用變量所引用時朴沿,它處于可達狀態(tài)败砂,不可能被垃圾回收機制回收。

  2. 軟引用(SoftReference)

    通過SoftReference類實現(xiàn)坚芜。當(dāng)一個對象只有軟引用時斜姥,它可能會被垃圾回收機制回收。當(dāng)系統(tǒng)內(nèi)存空間足夠時缚忧,被軟引用的對象不會被系統(tǒng)回收闪水,程序也可使用該對象;當(dāng)空間不足時蒙具,系統(tǒng)可能會回收它禁筏。

  3. 弱引用(WeakReference)

    通過WeakReference類實現(xiàn)融师。弱引用和軟引用很相像,但弱引用的引用級別更低旱爆。當(dāng)系統(tǒng)垃圾回收機制運行時怀伦,不管系統(tǒng)內(nèi)存是否足夠房待,總會回收被該引用引用的對象驼抹。

  4. 虛引用(PhantomReference)

    通過PhantomReference類實現(xiàn)拜鹤。虛引用類似于完全沒有引用敏簿。虛引用對對象本身沒有太大的影響,對象甚至感覺不到虛引用的存在温数。虛引用主要用于跟蹤對象被垃圾回收的狀態(tài)蜻势,虛引用必須和引用隊列(ReferenceQueue)聯(lián)合使用握玛。

上述三個引用都包含了一個get()方法败许,用于獲取被它們引用的對象淑蔚。

引用隊列(ReferenceQueue):

用于保存被回收的對象的引用刹衫。

  • 當(dāng)聯(lián)合使用軟引用、弱引用和引用隊列時带迟,系統(tǒng)在回收被引用的對象之后音羞,將把被回收的對象對應(yīng)的引用添加到關(guān)聯(lián)的引用隊列之中。
  • 虛引用在對象被釋放之前仓犬,將把它對應(yīng)的虛引用添加到它關(guān)聯(lián)的引用隊列中嗅绰,使得可以在對象被回收之前采取行動。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末搀继,一起剝皮案震驚了整個濱河市窘面,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌叽躯,老刑警劉巖财边,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異点骑,居然都是意外死亡酣难,警方通過查閱死者的電腦和手機谍夭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來齐板,“玉大人甘磨,你說我怎么就攤上這事∽叹酰” “怎么了?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長浅悉。 經(jīng)常有香客問我,道長荞估,這世上最難降的妖魔是什么勘伺? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任笤妙,我火速辦了婚禮股毫,結(jié)果婚禮上铃诬,老公的妹妹穿的比我還像新娘兵志。我一直安慰自己,他們只是感情好按价,可當(dāng)我...
    茶點故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布往枷。 她就那樣靜靜地躺著茅信,像睡著了一般。 火紅的嫁衣襯著肌膚如雪窿锉。 梳的紋絲不亂的頭發(fā)上嗡载,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天遥巴,我揣著相機與錄音拾弃,去河邊找鬼豪椿。 笑死,一個胖子當(dāng)著我的面吹牛增蹭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播饼灿,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼庇忌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了略就?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎螺戳,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年处渣,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片琅翻。...
    茶點故事閱讀 40,438評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡方椎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出棠众,到底是詐尸還是另有隱情,我是刑警寧澤我注,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布吼野,位于F島的核電站腰奋,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜帮寻,卻給世界環(huán)境...
    茶點故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一洽故、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸树埠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工妓柜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留求豫,地道東北人。 一個月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像舔涎,于是被迫代替她去往敵國和親挟冠。 傳聞我的和親對象是個殘疾皇子控淡,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,446評論 2 359

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