静态初始化代码块与非静态初始化代码块之间的区别是什么?
我的问题是关于静态关键字的一种特殊用法。可以使用static关键字用于覆盖不属于任何函数的类中的代码块。例如,以下代码编译:
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关键词,并使其编译。
a
final
在这两方面我都很困惑。我怎么会有一个不属于任何方法的代码部分?怎么可能调用它呢?一般来说,这种用法的目的是什么?或者更好的是,我在哪里可以找到有关这方面的文档?
皈依舞
慕仙森
相关分类