类的静态块在什么时候执行?
- 论坛
- 类的静态块在什么时候执行?
10 浏览
类的静态块在什么时候执行?
我有两个文件,让我们称它们为a.jar和b.jar。
b.jar依赖于a.jar。
在a.jar中,我定义了一个类,让我们称之为StaticClass。在StaticClass中,我定义了一个静态块,调用了一个名为"init"的方法:
public class StaticClass { static { init(); } public void static init () { // 在这里做一些初始化工作 } }
在b.jar中,我有一个main方法,所以在main方法中,我期望init()方法已经被调用了,但实际上没有。我怀疑这是因为jvm没有加载StaticClass类,有人能告诉我:
- 我的结论正确吗?
- 是什么触发了jvm加载一个类?
- 如何让静态块自动执行?
谢谢