Java代码块,使用{}来定义,同级别的代码块可以定义多个,并且代码块都是按照代码块的先后顺序来执行。
执行顺序为:静态代码块>构造代码块>构造方法。
普通代码块
定义:在方法体内使用{}声明,按代码顺序执行;
作用:可以在代码块中定义局部变量,限定变量的生命周期。
用例代码:
package cn.zealon.modifier.codeblock;
/**
* 普通代码块
* 定义:在方法体内使用{}声明,按代码顺序执行;
* 作用:可以在代码块中定义局部变量,限定变量的生命周期。
* @auther: Zealon
*/
public class UseCodeBlock1 {
public static void main(String[] args){
int num = 0;
{
num = 1;
System.out.println(num);
}
num = 159;
System.out.println(num);
{
double price = 4.5;
double total = price*num;
System.out.println(total);
}
}
}
由于是按先后顺序来执行,运行结果如下:
1
159
715.5
构造代码块
构造代码块,在类中使用{}来定义,多个代码块按先后顺序执行。
用例代码:
package cn.zealon.modifier.codeblock;
/**
* 构造代码块
* @auther: Zealon
*/
public class UseCodeBlock2 {
{
System.out.println("执行构造代码块1.");
}
public UseCodeBlock2(){
System.out.println("执行构造方法.");
}
{
System.out.println("执行构造代码块2.");
}
public static void main(String[] args){
new UseCodeBlock2();
}
}
由于构造代码执行顺序优先于构造方法,所以运行结果为:
执行构造代码块1.
执行构造代码块2.
执行构造方法.
静态代码块
静态代码块,在类中使用static{}定义,执行顺序最优先; 静态代码块类被加载时,只执行一次,多用于初始化一些静态成员变量。
用例代码:
package cn.zealon.modifier.codeblock;
/**
* 静态代码块
* @auther: Zealon
*/
public class UseCodeBlock3 {
{
System.out.println("执行构造代码块1.");
}
{
System.out.println("执行构造代码块2.");
}
static {
System.out.println("执行静态代码块1.");
}
static {
System.out.println("执行静态代码块2.");
}
public UseCodeBlock3(){
System.out.println("执行构造方法.");
}
public static void main(String[] args){
new UseCodeBlock3();
}
}
由于静态代码块执行顺序最高,所以运行结果如下:
执行静态代码块1.
执行静态代码块2.
执行构造代码块1.
执行构造代码块2.
执行构造方法.
作者: Zealon
崇尚简单,一切简单自然的事物都是美好的。