1.JVM实例和JVM执行引擎实例
JVM实例对应了一个独立运行的java程序——进程级别
一个运行时的Java虚拟机(JVM)负责运行一个Java程序。
当启动一个Java程序时,一个虚拟机实例诞生;当程序关闭退出,这个虚拟机实例也就随之消亡。
在同一台计算机上同时运行多个Java程序,将得到多个Java虚拟机实例,每个Java程序都运行于它自己的Java虚拟机实例中。
JVM执行引擎实例则对应了属于运行程序的线程——线程级别
2.jvm实例的产生
当启动一个Java程序时,一个JVM实例就产生了,任何一个拥有main函数的class都可以作为JVM实例运行的起点
3.jvm实例的运行
main()作为该程序初始线程的起点,任何其他线程均由该线程启动。
--JVM内部有两种线程: 守护线程和非守护线程
main()属于非守护线程,
守护线程通常由JVM自己使用,java程序也可以标明自己创建的线程是守护线程。
4.jvm实例的消亡
当程序中的所有非守护线程都终止时,JVM才退出 若安全管理器允许,程序也可以使用java.lang.Runtime类或者java.lang.System.exit()来退出。