java 代码块分类:静态代码块和非静态代码块。
静态代码块是在类加载时自动执行的,非静态代码块是在创建对象时自动执行的代码,不创建对象不执行该类的非静态代码块。
程序举例:
public class Test {
public static int a = 0;
static {
a = 10;
System.out.println("静态代码块在执行a=" + a);
}
{
a = 2;
System.out.println("非静态代码块在执行a=" + a);
}
public Test() {
this("hello"); // 调用另外一个构造方法
System.out.println("无参构造方法在执行a=" + a);
}
public Test(String n) {
System.out.println("有参构造方法"+a);
}
public static void main(String[] args) {
Test tsc = null;
System.out.println("!!!!!!!!!!!!!!!!!!!!!");
tsc = new Test();
}
}
输出结果:
静态代码块在执行a=10
!!!!!!!!!!!!!!!!!!!!!
非静态代码块在执行a=2
有参构造方法2
无参构造方法在执行a=2