黑馬程式員-類載入器

來源:互聯網
上載者:User

--------------------- 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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.