在尝试使用java时,我发现了一件非常有趣的事情。请查找以下代码:
public class SimpleTest {
static{
System.out.println(Thread.currentThread().getName());
System.exit(0);
}
} 上面的程序毫无例外地运行(很好,因为我退出了静态块本身)。但我得到的输出如下:
main
因为我还没有启动主线程,所以它是如何创建的。根据我的理解,静态块是在加载时执行的。那么主线程是如何进入画面的呢?
请大家简要介绍一下jvm中的编译、加载和执行过程。还有rt.jar的使用吗?
谢谢你,卤水
发布于 2011-05-31 13:10:43
主类在主线程上加载和初始化。尽管在任何地方都没有明确记录(据我所知),但这是一个相当安全的假设,因为几乎没有理由以不同的方式实现它。
https://stackoverflow.com/questions/6187996
复制相似问题