我一直在调试一些项目,而且在快速的几天里我已经多次遇到过这种代码语法。我以前从未见过这种情况,搜索没有帮助。这段代码做了什么?
public class SomeClass{
// Class member declarations...
static{
// Code / method calls. Basically looks like a method.
// What is this?
}
// method declarations...
}
答案 0 :(得分:3)
这是一个静态初始化块。
此处提供更多信息:http://docs.oracle.com/javase/tutorial/java/javaOO/initial.html
一个类可以有任意数量的静态初始化块,它们可以出现在类体中的任何位置。运行时系统保证按照它们在源代码中出现的顺序调用静态初始化块。
加载类时会调用它们。
答案 1 :(得分:0)
静态阻止的使用
1. 如果静态块中有可执行语句,当类加载到JVM中时,JVM将自动执行这些语句。
2. 如果你从静态块中引用一些静态变量/方法,这些语句将在将类加载到JVM后执行。