【发布时间】:2012-04-17 15:14:28
【问题描述】:
所以我确实阅读了从该线程执行静态初始化程序的内容和时间。 Static initializer in Java。但是我遇到了一些其他人编写的旧代码,似乎无法理解他为什么会这样使用它。
我的班级:
public class ClassA extends Thread {
.... private vars ....
private static Config config;
static {
config = null;
}
public ClassA(Config config) {
ClassA.config = config;
}
}
他为什么不这样做?
public class ClassA extends Thread {
.... private vars ....
private static Config config = null;
public ClassA(Config config) {
ClassA.config = config;
}
}
我知道静态初始化器会在类被重新生成时被调用,所以它设置 config => null,而如果我不使用静态初始化器,实例变量会在构造函数之前和超级之后获得初始化器。那么这两个班级不会做同样的事情吗?
【问题讨论】:
标签: java initialization