1. 程式人生 > >JVM啟動時的三個類載入器

JVM啟動時的三個類載入器

那就是利用面向物件的基本特性之一的多形性。我們把我們動態載入的Class的例項造型成它的一個system classloader所能識別的父類就行了!這是為什麼呢?我們還是要再來分析一次。當我們用我們自己的classloader來動態載入這我們只要把這個Class的時候,發現它有一個父類Class,在載入它之前JVM先會載入這個父類Class,這個父類Classsystem classloader所能識別的,根據委託機制,它將由system classloader載入,然後我們的classloader再載入這個Class,建立一個例項,造型為這個父類Class,注意了,造型成這個父類 Class
的時候(也就是上溯)是面向物件的java語言所允許的並且JVM也支援的,JVM就使用system classloader再次載入這個父類Class,然後將此例項造型為這個父類Class。大家可以從這個過程發現這個父類Class都是由 system classloader載入的,也就是同一個class loader載入的同一個Class,所以造型的時候不會出現任何異常。而根據多形性,呼叫這個父類的方法時,真正執行的是這個Class(非父類 Class)的覆蓋了父類方法的方法。這些方法中也可以引用system classloader不能識別的Class,因為根據全盤負責原則,只要載入這個Class
classloader即我們自己定義的 classloader能夠定位和載入這些Class就行了。