Custom Class Loader的用途是什么

问题描述 投票:16回答:4

最近,我遇到了Java自定义类加载器api。我在这里找到了一种用法,kamranzafar's blog我对类加载器概念有些陌生。谁能详细解释一下,在什么情况下我们可能需要或应该使用它?

java classloader
4个回答
32
投票

自定义类加载器在包含多个模块/应用程序的大型体系结构中很有用。这是自定义类加载器的优点:

  • 提供模块化体系结构允许定义允许模块化体系结构的多个类加载器。
  • 避免冲突清楚地将类的范围定义为类加载器之内。
  • Support Versioning支持同一VM中不同模块的类的不同版本。
  • 更好的内存管理可以删除未使用的模块,以卸载该模块使用的类,从而清理内存。
  • 从任何地方加载类可以从任何地方加载类,例如,数据库,网络,甚至即时定义它
  • 动态添加资源或类以上所有功能均允许您动态添加类或资源。
  • 运行时重新加载修改后的类允许您通过将子类加载器创建到包含修改后的类的实际类加载器来重新加载一个或多个类的运行时。

14
投票

主要用途是在应用程序服务器中,因此它们可以运行两个应用程序且不会发生类冲突。也就是说,如果应用程序1具有与应用程序2相同名称的类,则使用自定义类加载器,应用程序1将加载其类,而应用程序2将加载其类。


3
投票

Java类加载器几乎执行了顾名思义:将类加载到内存中以便可以使用它们。


0
投票

为什么要使用Java自定义类加载器?

© www.soinside.com 2019 - 2024. All rights reserved.