静态 {} 在 Java 语法中是什么意思?

2022-09-01 03:03:02

我遇到了这个Java代码:

static {
    String aux = "value";
    try {
        // some code here
    } catch (Exception e) { }
    String UUID_prefix = aux + ":";
}

我是Java的新手,请解释一下这里发生了什么。


答案 1

这是一个静态初始化块。可以将其视为构造函数的静态版本。构造函数在类实例化时运行;静态初始化块在类加载时运行。

你可以把它们用于类似这样的东西(显然是捏造的代码):

private static int myInt;

static {
    MyResource myResource = new MyResource();
    myInt = myResource.getIntegerValue();
    myResource.close();
}

请参阅 Oracle 有关初始化字段的教程的“静态初始化块”部分。


答案 2

这是在类加载器加载类时将调用的代码块


推荐