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

时间:2017-11-15 14:36:56

标签: java jvm

JVM如何内部管理

  1. 如果在两个不同的用户定义的类加载器中加载相同版本的类?
  2. 2。如果在两个不同的用户定义的类加载器(相同的类名和包)中加载不同版本的类加载。如果JVM加载了将在我的应用程序中引用的两个类。

    我们知道JVM在类,包和组合的组合中加载类。 Klass装载机。

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

每个ClassLoader都有自己的Metachunk来存储类元数据。