一个运行时的java虚拟机实例的天职就是:负责运行一个java程序。
*当启动一个java程序时,一个虚拟机实例也就诞生了。
*当该程序关闭退出,这个虚拟机实例也就随之消亡。
如果在同一台计算机上同时运行三个java程序,将得到三个java虚拟机实例。每个java程序都运行在他自己的java虚拟机实例中。
         java虚拟机实例通过调用某个初始化类的main() 方法来运行一个java程序。这个main()方法必须是公有的(public)、静态的(static),返回值为void ,并且接受一个字符串数组作为参数。
任何拥有这样一个main()方法的类都可以作为java程序运行的起点。
        java程序初始化类中的mian() 方法,将作为该程序初始线程的起点,任何其他的线程都是由这个初始线程启动的。
        java虚拟机内部有两个线程:守护线程和非守护线程。
*守护线程通常是由虚拟机自己使用的,比如执行垃圾收集任务的线程。(守护线程是一种“在后台提供通用性支持“的线程)
*java程序中的初始线程----就是开始于main() 的那个,是非守护线程。
只要还有任何非守护线程在运行,那么这个java程序也在继续运行(虚拟机仍然存活)当该程序中所有的非守护线程都中止时,虚拟机实例将自动自动退出。假若安全管理器允许,程序本身也能够通过调用Runtime类或者System类的exit()方法退出。