瞭解ClassLoader(節選)

完整文章下載:
http://www-900.ibm.com/developerWorks/education/java/j-classloader/j-classloader.zip


    在流行的商業化編程語言中,Java 語言由於在 Java 虛擬機 (JVM) 上運行而顯得與衆不同。這意味着已編譯的程序是一種特殊的、獨立於平臺的格式,並非依賴於它們所運行的機器。在很大程度上,這種格式不同於傳統的可執行程序格式。

    與 C 或 C++ 編寫的程序不同,Java 程序並不是一個可執行文件,而是由許多獨立的類文件組成,每一個文件對應於一個 Java 類。

    此外,這些類文件並非立即全部都裝入內存,而是根據程序需要裝入內存。ClassLoader 是 JVM 中將類裝入內存的那部分。

    而且,Java ClassLoader 就是用 Java 語言編寫的。這意味着創建您自己的 ClassLoader 非常容易,不必瞭解 JVM 的微小細節。

    如果 JVM 已經有一個 ClassLoader,那麼爲什麼還要編寫另一個呢?問得好。缺省的 ClassLoader 只知道如何從本地文件系統裝入類文件。不過這隻適合於常規情況,即已全部編譯完 Java 程序,並且計算機處於等待狀態。

    但 Java 語言最具新意的事就是 JVM 可以非常容易地從那些非本地硬盤或從網絡上獲取類。例如,瀏覽者可以使用定製的 ClassLoader 從 Web 站點裝入可執行內容。

    有許多其它方式可以獲取類文件。除了簡單地從本地或網絡裝入文件以外,可以使用定製的 ClassLoader 完成以下任務:

*在執行非置信代碼之前,自動驗證數字簽名
*使用用戶提供的密碼透明地解密代碼
*動態地創建符合用戶特定需要的定製化構建類
*任何您認爲可以生成 Java 字節碼的內容都可以集成到應用程序中。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章