java 知識小點
阿新 • • 發佈:2018-11-08
try{}catch{}finally{}
1 package com.xiaou.test1; 2 3 public class FinallyDemo { 4 // 第一種情況 5 public static int test1() { 6 try { 7 return 1; 8 }catch(Exception e) { 9 return 2; 10 }finally { 11 return 3; 12 } 13} 14 // 第二種情況 15 public static int test2() { 16 int i = 0; 17 try { 18 i++; 19 return i; 20 21 }catch(Exception e) { 22 return 2; 23 }finally { 24 i--; 25 } 26 } 27 // 第三種情況 28 publicstatic int test3() { 29 try { 30 int i = 1/0 ; 31 return i; 32 }catch(Exception e) { 33 return 1; 34 }finally { 35 System.out.println("我被執行了"); 36 } 37 } 38 public static void main(String[] args) { 39 // 返回的是340 // 因為finally程式碼塊無論是報錯還是在try程式碼塊中return了他將都會執行 41 System.out.println(test1()); 42 // 返回的是1 43 // 因為在執行到return的時候會將值儲存直到finally執行完成後返回, 44 //所以finally怎麼改變這個值都不會受到影響 45 System.out.println(test2()); 46 System.out.println(test3()); 47 } 48 }
JAVA的初始化順序:
父類的靜態成員初始化>父類的靜態程式碼塊>子類的靜態成員初始化>子類的靜態程式碼塊>父類的程式碼塊>父類的構造方法>子類的程式碼塊>子類的構造方法
注意:靜態成員和靜態程式碼塊只有在類載入的時候執行一次,再次建立例項時,不再執行,因為只在方法區存在一份,屬於一整個類。