一個運行時的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()方法退出。