finally的用法及注意事項
必然執行的例外統一的處理出口通俗點來講:無論是否發生例外,finally必然執行
:
Finally:
1.finally作為例外處理的一部分,它一般用在try/catch陳述句中,
2.網路編程,I/o處理,資料庫操作等 在執行這些操作時,都會發生例外,無論是網路編程還是客戶端連接服務器以及連資料庫占用資料庫時,都需要釋放,釋放在finally里,
Finally在什么情況下執行,什么情況下不會執行?(注意事項)
軟體在記憶體里沒了,電腦停電關機這些因素的情況下才會不執行
否則一定會執行
兩個對比案例
package com.java.demo1;
public class Demo6 {
public static void main(String[] args) {
Person p = haha();
System.out.println(p.age);
}
public static Person haha(){
Person p = new Person();
try{
p.age = 18;
return p;
}catch(Exception e){
return null;
}finally {
p.age = 28;
}
}
static class Person{
int age;
}
}

這個代碼是備份的記憶體地址,記憶體地址沒變,年齡換成28,所以結果為28
package com.java.demo1;
public class Demo7 {
public static void main(String[] args) {
int a = haha();
System.out.println(a);
}
public static int haha(){
int a = 10;
try{
return a;
}catch(Exception e){
}finally {
a = 20;
}
return 0;
}
static class Person{
int age;
}
}

這個代碼是備份的回傳值,回傳的還是原來的a,這也就是參考型別和非應用型別的關系,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/252675.html
標籤:java
