如果两个用户定义的类加载器加载相同的类,JVM如何在内部处理



JVM如何内部管理

  1. 如果在两个不同的用户定义的类装入器中装入相同版本的类装入?

阿拉伯数字。如果装入不同版本的类,则会在两个不同的用户定义的类装入器(相同的类名和包(中装入。如果 JVM 加载两个类,这将在我的应用程序中引用。

我们知道 JVM 以类、包和 Klass 加载器的组合加载类。

我想知道内部 JVM 如何处理这些情况。

在 JVM 实例中,有关已加载类型的信息存储在称为方法区域的内存逻辑区域中。对于它加载的每种类型,JVM 在方法区域中存储不同类型的信息,包括:• 类型的完全限定名称• 类型是类还是接口• 对类加载器的引用 – 有关用于加载此类型的类加载器的信息

JVM 将它们视为不同的类。不同类加载器的元数据是隔离的,因此类是否具有相同的名称并不重要。

每个类加载器都有自己的元块来存储类元数据。

最新更新