類加載的三種方法 以及類的初始化

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系統出現問題,虛擬機停止運行;

類加載的三種方法 以及類的初始化


分享到:


相關文章: