-2

我正在使用自定义类加载器CustomClassLoader来创建类的实例DemoClass。在监视 vm 的详细输出时,我注意到

[Loaded packageName.DemoClass from file:workspace/bin/]

在 jconsole 窗口上,我注意到加载的类数量与创建的实例成比例地增加。

任何了解此行为的指针。

4

1 回答 1

1

这个问题有点宽泛。

ClassLoader如果没有进一步的上下文,我将不得不得出结论,每次实例化类时,您都不是在重用,而是创建一个新的。

现在,这可能是正确且合法的行为,具体取决于您要执行的操作,例如,如果您尝试实现动态语言类型功能,您实际上可能每次都想要一个不同的类,但实现这一目标的更简单方法是生成新的类名并使用现有的类加载器(除非您能够在实例过期时卸载它们并且希望每个类加载器清理器用于卸载)

于 2013-06-17T13:34:58.953 回答