深入理解JVM 第一章 之3

  1. 類裝載器:“啓動”類裝載器(默認類裝載器、原始類裝載器、系統類裝載器)和用戶自定義的類裝載器。
  2. “啓動”類裝載器:JVM的一部分。例如JVM在已有的OS上實現爲C程序,那麼它就是C程序的一部分,從本地裝載類(包括Java API中的類)
  3. “用戶自定義”類裝載器:Java應用程序能夠在運行的時候安裝用戶定義的類裝載器。利用這種類裝載器,用戶可以在程序中指定裝載類的方式(例如從網上下載字節碼、從數據庫中獲取、動態生成等等)。用戶自定義的類裝載器能夠用Java程序寫,能過編譯成 .class 文件,能夠被類裝載器裝載(這裏最基本的是“默認類裝載器”),能夠像其他對象一樣被實例化。用戶自定義的類加載器只是Java可執行代碼中的一部分。通過使用這些類加載器,應用程序可以決定如何來加載類、使用哪些類加載器進行加載
  4. 當一個類被加載的時候,JVM會監視這個類是用”默認類加載器“加載的還是用“用戶自定義類加載器“加載的。如果使用用戶自定義類加載器加載,那麼加載這個類中使用的類的時候還是使用這個類加載器。
  5. 用戶自定義的類加載器可以在程序中定義和實例化,所以在同一個應用程序中可以創建多個或者多種類加載器。但是被不同的類加載器加載的類會放到不同的命名空間中,不同的命名空間中的類默認情況下是不能互相訪問的,除非應用程序中顯示這麼做。
  6. 將不用的源文件裝載的類分別裝在不同的命名空間中,這樣,就可以控制不同源文件之間代碼的影響,特別能夠阻止惡意代碼獲取訪問和破壞善意代碼的權限
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章