1在命令行啟動虛擬機jvm進行加載,
2用class.forname()方法進行動態加載;
3用ClassLoader.loadClass()進行動態加載;
區別:用二方法加載時,還會對類進行解釋,執行其中的static語句塊;
用三方法時候,static語句塊不會被執行,只有在類創建對象的時候才會加static語句塊;
注意:class.forname(name,initialize,loader)也可以自己定義是否加載static,並且是調用了NewInstance()方法
採用構造函數創建對象的時候才可以;
初始化:只有在使用時類才會被初始化。
1 初始化,也就是new時候會初始化類
2 訪問類或者接口中的靜態變量或者對其賦值
3 調用類的靜態方法
4 反射(Class.forName("com.geminno");)
5 初始化它的子類,父類也會初始化
6 虛擬機啟動時被標明是啟動類的類(java Test),直接用java.exe運行某個類;
程序執行結束的幾種方式:
1 system.exit();
2 正常執行完畢;
3程序運行錯誤,報錯
4系統出現問題,虛擬機停止運行;
閱讀更多 給我一杯溫開水 的文章