小编典典

静态初始化块

all

据我了解,如果不能在一行中完成,则“静态初始化块”用于设置静态字段的值。

但我不明白为什么我们需要一个特殊的块。例如,我们将一个字段声明为静态的(没有赋值)。然后编写几行代码,为上面声明的静态字段生成并赋值。

为什么我们需要将这些行放在一个特殊的块中,例如:static {...}


阅读 79

收藏
2022-04-25

共1个答案

小编典典

静态块:

{
    // Do Something...
}

每次 构造类的实例时调用。 静态块 只被调用 一次 ,当类本身被初始化时,不管你创建了多少该类型的对象。

例子:

public class Test {

    static{
        System.out.println("Static");
    }

    {
        System.out.println("Non-static block");
    }

    public static void main(String[] args) {
        Test t = new Test();
        Test t2 = new Test();
    }
}

这打印:

Static
Non-static block
Non-static block
2022-04-25