雙親委派模型是在實現在類加載器之間的。
一般有三種類加載器 啓動類加載器 擴展類加載器 應用程序加載器。 在沒有自己定義的類加載器出現 我們的應用程序是由這三種類加載器相互配合的。
從名字可以看出 啓動類加載器是最頂層的 應用程序是底層的
那麼該模型的工作過程就是,如果一個類加載器收到了類加載的請求,他不會自己去嘗試加載這個類,而是把請求傳遞給父類,父類再傳遞 。 如果最頂層的父類 可以加載請求 類就加載成功,否則,再一級級下來。 也就是說,如果父類可以解決,子類就不會自己去解決它。
到這裏有人會覺得很奇怪,那爲什麼呢?我們知道 不同的類加載器去加載一個類的時候,產生出來的類是不同的。那jvm爲了保證 基礎類都是相同的,就要讓同一個類加載器去加載類。
舉一個例子,Object 如果又不用的類加載器去加載 那會有什麼樣的情況? 結果就是,有不同的Object類。那其他類到底是繼承哪個Object?很難說。