8
静态和非静态初始化代码块有什么区别
我的问题是关于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关键字并进行编译。 这两种方式都使我感到困惑。我应该如何拥有不属于任何方法的代码段?如何调用它?通常,此用法的目的是什么?或者更好的是,在哪里可以找到有关此文件的文档?