最近我來到java定製類加載器api。我在這裏找到一個用法,kamranzafar's blog 我對類加載器概念有點新鮮。任何人都可以詳細解釋,我們可能需要它的不同場景有哪些,或者我們應該使用它?什麼是自定義類加載器
回答
自定義類加載器在由多個模塊/應用程序組成的較大體系結構中非常有用。下面是自定義類加載器的優點:
- 提供模塊化結構可以定義多個類加載器允許模塊化架構。
- 避免衝突顯然定義了類的範圍的類加載器內。
- 支持版本支持不同的模塊相同VM內的不同版本的類。
- 更好的內存管理未使用的模塊可被移除,其卸載由該模塊,其清理內存使用的類。
- 從任何地方加載班級班級可以從任何地方加載,適用於ex,數據庫,網絡,甚至可以動態定義。
- 添加資源或類動態所有上述功能允許您添加類或資源動態。
- 運行時重新加載修改過的類允許您創建一個子類加載器到實際的類加載器,其中包含修改的類重載類或類運行。
一個有趣的(酷?)從任何地方加載類的例子可以在這裏看到:http://99-bottles-of-beer.net/language- java-1162.html – Crollster
@Ramesh PVK感謝您的描述。但如果您可以提供一些示例代碼來理解您所描述的內容,那麼它非常令人欽佩。希望你會像我們這樣對java感興趣的人做到這一點。 –
主要用途是在應用程序服務器中,以便它們可以運行兩個應用程序並且不會產生類衝突。即如果應用程序1具有與應用程序2相同名稱的類,則具有定製類裝載器應用程序1將加載其類,並且應用程序2將加載其類。
此外,如果一個類由一個自定義的類加載器加載能夠從JVM卸載該類。在應用程序服務器中再次有用
另一個用途是用於檢測 - 一種做面向方面編程或者使用一些持久性API的方法。使用自定義類加載器,您可以在加載的類傳遞到正在運行的應用程序之前向其中添加行爲。
Java類加載器的名稱的確如此:將類加載到內存中以便可以使用它們。
類還與加載它們的ClassLoader鏈接。因此
自定義類裝載器開拓各種有趣的可能性:
- 載入與不同類加載器相同的類的多個版本(例如,以解決例如可能版本conficts)
- 裝卸類動態在運行時
- 生成新的類(例如JVM語言例如Clojure使用不同的類加載技巧產生新編譯的類從非標準源
普通的Java應用程序通常不需要擔心的類加載器代表在運行時
- 1. 如何儀器類加載自定義類加載器?
- 2. PHP自定義類加載器
- 3. PropertyPlaceholderConfigurer與自定義類加載器
- 4. 「NegativeArraySizeException」 - 自定義類加載器
- 5. Java自定義類加載器
- 6. 帶自定義類加載器的Log4j2
- 7. 自定義類加載器的問題
- 8. Constructor.newInstance中的自定義類加載器
- 9. 自定義類加載器爲Android?
- 10. 使用自定義自動加載器加載php核心類
- 11. 作曲家用於自動加載自定義類的規則是什麼?
- 12. 什麼是類加載器反轉
- 13. .NET類加載器 - 它是什麼?
- 14. android:什麼是首選,加載自定義字體或圖像?
- 15. 加載自定義UIView的最佳方式是什麼?
- 16. 使用自定義類加載器加載資源包
- 17. 定義自定義類加載器系統
- 18. 與默認類加載器和PlayFramework自定義類加載器衝突
- 19. 自定義類加載器缺省類加載器的需求和限制
- 20. Java類加載器:爲什麼先搜索父類加載器?
- 21. 加載自定義類加載器以加載java中傳輸的字節[]
- 22. Authorize.net ARB自定義自動加載無法加載MerchantAuthenticationType類
- 23. 自定義系統類加載器不被所有類使用
- 24. 如何編寫自定義的類加載器來從jar中加載類?
- 25. 使用自定義類加載器加載Java運行時和API類
- 26. 使用自定義類加載器對JavaFX jar加密
- 27. 笨庫 - 錯誤加載自定義類
- 28. 自定義類從jar加載ClassCastException
- 29. 加載自定義類時的ClassNotFoundException
- 30. iphone - Interface Builder不加載自定義類?
寫好自定義類加載器的好文章。 http://www.journaldev.com/349/java-classloader –