我在分析游戏源代码时偶然发现了这种结构,但是我是一个早期的程序员,不知道它是什么。我认为“静态”意味着它的行为与对象或实例无关,但是究竟是什么呢?什么时候执行其内容?为什么使用它?
public class MyClass {
// Class Fields
// Class Methods
// \/ this \/
static {
someCode();
...
...
...
}
}
它包含代码块,每次实例化对象时都会执行。在使用该实例之前,可以使用它进行一些初始化工作。有时,它与例如spring依赖注入一起使用,以便代码在@PostConstruct
之前运行。