--------------------- android培訓、java培訓、期待與您交流! ----------------------類載入器 Class Loader
1.概述
Java中的類要載入到記憶體中(成為位元組碼,即Class對象),需要類載入器來載入。一般來講,類載入器也是Java類,也需要載入器來載入,所以在Java中必須要有一個不是Java類的載入器來載入這些載入器,它就是BootStrap。其他的載入器都是Java類,如ExtClassLoader,AppClassLoader和自己定義的載入器。他們的關係如下:
BootStrap是ExtClassLoader的parent,用來載入JRE/lib/rt.jar裡面的class檔案,即系統class
ExtClassLoader是AppClassLoader的parent,用來載入 JRE/lib/ext/*.jar裡的class,即擴充class
AppClassLoader是自訂載入器的parent,用來載入CLASSPATH指定的jar或目錄
自訂類載入器,用來載入自己定義的特定目錄中的類。
2.類載入器的委託機制
類載入器載入類時,先委託上級(parent)完成,如果上級能完成就不用自己動手了。這樣處理的好處在於,避免重複載入同一個類,導致同一個類多份位元組碼的現象出現。
3.自訂類載入器
class MyClassLoader extends ClassLoader
{
...(需要重寫 findClass方法來用自己的方法載入類)
}
類載入器都是抽象類別ClassLoader的子類,ClassLoader本身使用了模板設計模式,把類中不確定的部分暴露出來給子類去完成,如這裡的findClass方法就是自訂的部分。
----------------------android培訓、java培訓、期待與您交流! ----------------------詳細請查看:http://edu.csdn.net/heima