1、一个运行时java虚拟机的天职就是:负责运行一个Java程序。当启动一个Java程序时,一个虚拟机实例也就诞生了。当该程序关闭退出,这个虚拟机实例也就随之消亡。也就是说,java虚拟机的诞生由Java程序的诞生而产生的,java虚拟机的消亡也是由Java程序的关闭而消亡的。
2、 Java 程序初始类中main()方法,将作为该程序初始线程的起点,其他任何线程都是由这个线程启动的。
3、Java虚拟机内部有两种线程:守护线程和非守护线程。守护线程通常是由虚拟机自己使用的,比如执行垃圾回收任务的线程。而Java程序的初始线程——main线程,是非守护线程。只要有任何非守护线程在运行,那么这个Java程序也在继续运行(虚拟机仍然存活)。 当该程序中所有的非守护线程都终止时,虚拟机实例将自动退出。