JavaSE@擴充補遺@筆記12@Java中的類載入機制【瞭解】

唯愛丶魏先生發表於2020-11-08

1、類的載入

當一個類第一次被使用時,會被載入到方法區,一個類只會被載入一次。

2、類的載入時機

  1. 建立類的例項。

  2. 呼叫類的靜態變數,或者為靜態變數賦值。

  3. 呼叫類的靜態方法。

  4. 使用反射方式來強制建立某個類或介面對應的java.lang.Class物件。

  5. 初始化某個類的子類。

  6. 直接使用java.exe命令來執行某個主類。

    public class Test01 {
        public static void main(String[] args) throws ClassNotFoundException {
            //1. 建立類的物件。
            Student s = new Student();
    ​
            //2. 呼叫類的靜態變數,或者為靜態變數賦值。
            Student.s = "abc";
    ​
            //3. 呼叫類的靜態方法。
            Student.method();
    ​
            //4. 使用反射方式來強制建立某個類或介面對應的java.lang.Class物件。
            Class c = Class.forName("com.itheima_01.Student");
    ​
            //5. 初始化某個類的子類。
            SmallStu ss = new SmallStu();
    ​
            //6. 直接使用java.exe命令來執行某個主類。
            有主方法的類會直接被載入
        }
    }

     

3、類載入器

類載入器就是把類載入到記憶體的工具。不同的類載入器用來載入不同型別的類。

  • 啟動類載入器(Bootstrap ClassLoader)

  • 擴充套件類載入器(Extension ClassLoader) 在JDK9以後它變成了平臺類載入器PlatformClassLoader

  • 應用程式類載入器(Application ClassLoader)

  • 關係:

    • Application 的父親是 Extension 的父親是 Bootstrap

    • Extension 的父親是 Bootstrap

相關文章