何时执行类的静态块?
2022-08-31 13:01:12
我有2个罐子,让我们称它们为a.jar和b.jar。
b.jar取决于a.jar。
在a.jar中,我定义了一个类,我们称之为StaticClass。在StaticClass中,我定义了一个静态块,调用一个名为“init”的方法:
public class StaticClass {
static {
init();
}
public void static init () {
// do some initialization here
}
}
在b.jar中,我有一个main,所以在main中,我希望init()方法已被调用,但实际上没有。我怀疑这是因为静态类没有被jvm加载,谁能告诉我
- 我的结论是正确的吗?
- 是什么触发 jvm 来装入类?
- 如何自动执行静态块?
谢谢