Java 类加载器子系统中的名称空间与可见性

Java 类加载器子系统中的名称空间与可见性,java,Java,Java有3种不同类型的加载程序,因此它将有3种不同的名称空间。由于安全原因,一个命名空间中的类无法看到其他命名空间中的类。我的应用程序类加载器将加载我的应用程序类,现在如果我的类使用字符串类,那么如何提供可见性,因为字符串类是由引导加载器加载的。我相信“ChildClassLoader”将始终检查其“ParentClassLoader”(本例中的引导类加载器)如果指定的类已加载。因此,“字符串”类(在本例中)在所有“类加载器”中都是相同的 一个简单的检查就是为每个“类加载器”打印出特定类的“哈

Java有3种不同类型的加载程序,因此它将有3种不同的名称空间。由于安全原因,一个命名空间中的类无法看到其他命名空间中的类。我的应用程序类加载器将加载我的应用程序类,现在如果我的类使用字符串类,那么如何提供可见性,因为字符串类是由引导加载器加载的。

我相信“ChildClassLoader”将始终检查其“ParentClassLoader”(本例中的引导类加载器)如果指定的类已加载。因此,“字符串”类(在本例中)在所有“类加载器”中都是相同的


一个简单的检查就是为每个“类加载器”打印出特定类的“哈希代码”,因为如果类对象不是通过“ParentClassLoader”共享的,那么每个“类加载器”的哈希代码都会不同。

我相信“ChildClassLoader”总是会检查其“ParentClassLoader”(本例中的引导类加载器)如果指定的类已加载。因此,“字符串”类(在本例中)在所有“类加载器”中都是相同的

一个简单的检查就是为每个“ClassLoader”打印出特定类的“hashcode”,因为如果类对象没有通过“ParentClassLoader”共享,那么每个“ClassLoader”的hashcode都会不同