代码块:在类或方法中直接使用 “{ }”括起来的一段代码,表示一块代码区域。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:$$$$$$$$$$ 初始化代码块########## 构造器!!!!!!!!! ~~~~~~~~~~~ 初始化代码块########## 构造器!!!!!!!!!