1.Java程序執行包括加載類和實例化類兩個階段。
2.加載類階段與實例化類階段都是按照先父類后子類的順序進行。
3. 加載類完成,立即形成Class類的一個對象,名字就是所加載類的類名,然后,該Class類的對象完成所加載類的靜態成員的初始化。
4.JVM 啟動的時候就加載了Class類,并且分配空間,完成了相關的初始化。
5.一個類的靜態成員并不存在于new出來的堆區空間中,而是存在該類對應的Class類對象的空間里。
1.將程序編譯成字節碼的不是JDK;
JDK的全拼是java development kit,就是java開發工具包。
包括一些函數庫或編譯程序之類的。
將程序編譯成字節碼的應該是JVM。
2.你在從main函數開始,執行一個程序的時候,一個JVM實例也隨之產生,
它的任務就是執行java程序,可以說JVM開始于一個main函數。
JVM啟動后執行你的java程序,JVM加載并解析你在程序里寫的類(已經被編譯成.class了)。
3.靜態變量在類被加載的時候被初始化。
from:
http://topic.csdn.net/u/20081124/18/f394f255-0e34-48d8-a5e3-3db8ac4e8fc7.html