1、類的加載
當我們程序要使用某個類時,如果該類還未被加載到內存中,則系統會通過加載、連接、初始化三步來實現對這個類的初始化。
類初始的時機?
- 創建類的實例
- 訪問類的靜態變量,或爲靜態變量賦值
- 調用類的靜態方法
- 初始化某個類的子類
- 使用反射方式強制創建某個類或接口的字節碼對象
2、類加載器
類加載器的作用是將.class文件加載到內存中,併爲之創建對應的Class對象,Java中提供了三類加載器。
- BootstrapClassLoader:負責將Java核心類的加載,比如常用的String、List,在JDK中JRE的lib目錄下的rt.jar文件中。(根類加載器)
- ExtensionClassLoader:負責JRE的擴展目錄中jar包的加載,在JDK中JRE的lib目錄下ext目錄。(擴展類加載器)
- SystemClassLoader:負責在JVM啓動時加載來自Java命令的class文件。(系統類加載器)
有夢爲馬,隨處可棲。