上QQ阅读APP看书,第一时间看更新
1.9 JVM的生命周期
JVM的生命周期包含三个状态:JVM的启动、JVM的执行和JVM的退出。
JVM可以通过Java命令启动,接着通过引导类加载器(Bootstrap Class Loader)加载类文件,最后找到程序中的main()方法,去执行Java应用程序。
JVM的执行表示一个已经启动的JVM开始执行Java程序。JVM通过main()方法开始执行程序,程序结束时JVM就停止。执行一个Java程序的时候,真正在执行的是一个叫作JVM的进程,通常情况下,一个Java程序对应一个JVM进程。
JVM的退出有如下几种情况。
(1)Java应用程序正常执行结束,即当所有的非守护线程执行结束。
(2)Java应用程序在执行过程中遇到了异常或错误而异常终止,比如发生内存溢出导致程序结束。
(3)由于操作系统出现错误而导致JVM进程终止,比如机器宕机。
(4)用户手动强制关闭JVM,比如使用kill命令。
(5)某线程调用Runtime类或System类的exit()方法。
除此之外,JNI(Java Native Interface)规范描述了用JNI Invocation API来加载或卸载JVM时JVM的退出情况。