Bri*_*nal 4 java jvm static-block
尝试使用java时,我发现了一个非常有趣的事情.请找到以下代码:
public class SimpleTest {
static{
System.out.println(Thread.currentThread().getName());
System.exit(0);
}
}
Run Code Online (Sandbox Code Playgroud)
上面的程序没有任何异常地运行(好吧,因为我正在静态块中退出).但我得到以下输出:
主要
由于我还没有启动主线程,它是如何创建的.根据我的理解,静态块在加载时执行.然后主线如何进入图片?
任何人都可以简要介绍如何在jvm中完成编译,加载和执行?还使用rt.jar?
先谢谢,Brinal
当您运行任何Java程序时,主线程是第一个启动的线程.
您看到的输出并不表示该main 方法正在执行.相反,它是main 线程.
因此,无论何时启动Java程序,您都将拥有一个名为main execution的线程.并且,如果该线程立即退出JVM,那么这就是所有将运行的线程.
澄清:
根据我的理解,静态块在加载时执行.
加载类时执行静态块.这是由类加载器发生的,并在Java程序启动时在主线程中执行.
| 归档时间: |
|
| 查看次数: |
1195 次 |
| 最近记录: |