final修飾符(關(guān)鍵字)
- 被final修飾的類不能再派生子類,稱為終態(tài)類(所以,一個(gè)類不能既被final修飾又被abstract修飾)。
- 被final修飾的方法不能被子類重寫(但可以重載)。
- 被final修飾的變量不能被再次賦值,有且只能有一次賦值,稱為常量(靜態(tài)常量可以在聲明時(shí)或靜態(tài)代碼塊中賦值,普通常量可以在聲明時(shí)或構(gòu)造函數(shù)中賦值)。
- final也可以聲明在方法的形參上,表示形參為常量,不能被篡改(實(shí)參可以是未被final修飾的變量)。
finally是在異常處理時(shí)提供finally塊來執(zhí)行清除操作的。
在異常處理時(shí),finally塊中的代碼始終會(huì)被執(zhí)行。
try {
System.out.println("try");
int i = 1/0;
} catch (Exception e) {
System.out.println("catch");
int i = 1/0;
} finally {
System.out.println("finally"); //finally塊中的代碼始終被執(zhí)行
}
//運(yùn)行結(jié)果:
try
catch
Exception in thread "main" java.lang.ArithmeticException: / by zero
at cn.huazai.main.collection_interface.QueueExample.main(QueueExample.java:29)
finally
finalize:Object類中的一個(gè)方法
java技術(shù)允許使用finalize()方法在垃圾收集器(GC)將對(duì)象從內(nèi)存中清除之前做必要的清理工作。這個(gè)方法是GC在確定了被清除對(duì)象沒有被引用的情況下調(diào)用的。
finalize是在Object類中定義的,因此,所有的類都繼承了它。子類可以覆蓋finalize()方法,來整理系統(tǒng)資源或者執(zhí)行其他清理工作。