静态和非静态初始化代码块有什么区别
2022-08-31 04:44:41
我的问题是关于静态关键字的一个特定用法。可以使用关键字来覆盖不属于任何函数的类中的代码块。例如,以下代码编译:static
public class Test {
private static final int a;
static {
a = 5;
doSomething(a);
}
private static int doSomething(int x) {
return (x+5);
}
}
如果删除关键字,则会抱怨,因为变量是 。但是,可以删除和关键字并使其编译。static
a
final
final
static
这在两个方面都让我感到困惑。我怎么会有一个不属于任何方法的代码段?如何调用它?一般来说,这种用法的目的是什么?或者更好的是,在哪里可以找到有关此内容的文档?