static代码块作用

157 阅读1分钟

关于静态代码块:

  • 随着类的加载而执行,只执行一次,并且优于主函数。
  • 静态代码块是给类初始化的,构造代码块是给对象初始化的。
  • 静态代码块中的变量是局部变量,与普通函数中的局部变量性质没有区别。

在类的加载过程中,static修饰的遍历会被初始化为0,然后再进行赋值。

public class Four {
    private static int num = 1;

    static {
        num = 10;
        number = 50;
        System.out.println(num);
        System.out.println(number);         //报错: 非法前向引用,这里只能赋值,不能引用
    }

    private static int number = 5;      // linking之prepare, number = 0  --> inital 1

    public static void main(String[] args) {
        System.out.println(Four.num);
        System.out.println(Four.number);
    }
}