代碼塊:在類或方法中直接使用 「{ }」括起來的一段代碼,表示一塊代碼區域。java
代碼塊裏變量屬於局部變量,只在本身所在區域{ }內有效。spa
代碼塊依據位置不一樣分爲三種形式:code
局部代碼塊程序示例:對象
public class CodeBlock { public static void main(String[] args) { int a=1; { int b=2; System.out.println(a); System.out.println(b); } System.out.println(a); // System.out.println(b); //此處b沒法輸出 } }
局部代碼塊程序示例運行結果:編譯
1 2 1
初始化代碼塊程序示例:class
public class CodeBlock { { System.out.println("初始化代碼塊##########"); } CodeBlock(){ //構造器 System.out.println("構造器!!!!!!!!!"); } public static void main(String[] args) { new CodeBlock(); System.out.println("~~~~~~~~~~~"); new CodeBlock(); } }
初始化代碼塊程序示例運行結果:變量
初始化代碼塊########## 構造器!!!!!!!!! ~~~~~~~~~~~ 初始化代碼塊########## 構造器!!!!!!!!!
靜態代碼塊(使用static修飾的代碼塊):在主方法執行以前執行靜態代碼塊,且執行一次。程序
靜態代碼塊程序示例:方法
public class CodeBlock { { System.out.println("初始化代碼塊##########"); } CodeBlock(){ //構造器 System.out.println("構造器!!!!!!!!!"); } static{ //靜態代碼塊A System.out.println("靜態代碼塊A:$$$$$$$$$$"); } public static void main(String[] args) { new CodeBlock(); System.out.println("~~~~~~~~~~~"); new CodeBlock(); } static{ //靜態代碼塊B System.out.println("靜態代碼塊B:$$$$$$$$$$"); } }
靜態代碼塊程序示例運行結果:im
靜態代碼塊A:$$$$$$$$$$ 靜態代碼塊B:$$$$$$$$$$ 初始化代碼塊########## 構造器!!!!!!!!! ~~~~~~~~~~~ 初始化代碼塊########## 構造器!!!!!!!!!