1、代码块的定义:用{ } 括起来的代码。
2、分类:
A:局部代码块
在局部位置,如成员方法中: { Code }
用于限定变量的生命周期,及早释放,提高内存利用率。
B:构造代码块
在类成员的位置: { Code }
把多个构造方法中相同的代码放到这里,每个构造方法执行前首先执行构造代码块。
C:静态代码块
在类成员的位置:static { Code }
对类的数据进行初始化,仅仅只执行一次。
静态代码块,构造代码块,构造方法的执行顺序?
静态代码块(只执行一次)--> 构造代码块(每次调用构造方法都执行)--> 构造方法
示例代码:
/**
* 静态代码块 > 构造代码块 > 构造方法
* */
class Code {
static {
int a =1000;
System.out.println("静态代码块:"+a);
}
{
int x =100;
System.out.println("构造代码块:"+x);
}
public Code(){
System.out.println("构造方法代码块,无参");
}
public Code(int a){
System.out.println("构造方法代码块,有参");
}
{
int y =200;
System.out.println("构造代码块:"+y);
}
static {
int b =2000;
System.out.println("静态代码块:"+b);
}
}
public class CodeDemo{
@SuppressWarnings("unused")
public static void main(String[] args) {
{
int x=10;
System.out.println("局部代码块x:"+x);
}
{
int y=20;
System.out.println("局部代码块y:"+y);
}
Code c1 = new Code();
System.out.println("---------------");
Code c2 = new Code();
System.out.println("---------------");
Code c3 = new Code(1);
System.out.println("---------------");
}
}
/*
局部代码块x:10
局部代码块y:20
静态代码块:1000
静态代码块:2000
构造代码块:100
构造代码块:200
构造方法代码块,无参
---------------
构造代码块:100
构造代码块:200
构造方法代码块,无参
---------------
构造代码块:100
构造代码块:200
构造方法代码块,有参
---------------
* */