被finally控制的語句體一定會執(zhí)行愕掏, 除非在執(zhí)行finally語句體之前JVM退出(比如System.exi()),一般用
于關(guān)閉資源
finally如何使用?
finally語句塊可以直接和try語句塊聯(lián)用: t...ially.... (這種用的比較少)
也可以這樣使用: t....c...inall
小練習(xí)1
package com . monkey1024. exception ;
public class FinallyTest01 {
public static void main(String[] args) {
try {
System. out . print1n(1024 / 0);
} catch (ArithmeticException e) {
e. printStackTrace();
} finally{
System. . out. println("finally中的內(nèi)容");
}
}
輸出的語句
catch中的語句
finally中的語句
小練習(xí)2
package com . monkey1024. exception;
public class Final lyTest02 {
public static void main (String[] args) {
int result = m1() ;
System. out. println (result) ;
public static int m1 () {
try {
int i = 1024; / /try里面的變量在外部是無法被訪問的
System. exit(0) ; / /讓jvm退出哩都,所以inally中的語句不會執(zhí)行
return i ;
} catch (Exception e) {
e. printStackTrace () ;
} finally {
System. out. println (" finally中的語句") ;
}
return 10;
/ / System.out.println(i) ;無法訪問i其骄,因為i是在try中聲明的
}
}
final盐须,finally和finalize的區(qū)別惨篱?
1.程序在執(zhí)行到return i時,會先將返回凤薛,所以main方法中的的值是10,然后再執(zhí)行finally中的語句,打印
出了11,之后再執(zhí)行main方法中的語句座泳,打印出10。
2.這三個關(guān)鍵字其實沒有什么關(guān)系凰慈,只不過在單詞的拼寫上面相似汞幢。
. final .
. final可以修飾類,不能被繼承
■修飾方法,不能被重寫
.修飾變量,只能賦值一-次
■
finally是try語句中的一個語句體,不能單獨使用語句體中的語句- -定會執(zhí)行
finalize是Object中的一一個方法當沒有引用指向這個對象時微谓,由對象的垃圾回收器在回收之前調(diào)用此
方法森篷。