【发布时间】:2016-10-17 15:00:27
【问题描述】:
我目前正在阅读类加载器及其层次结构功能。 如果我调用下面的代码 -
ClassA a= Class.forName("com.test.ClassA")
据我了解,现在它将在应用程序类加载器的帮助下被初始化并加载到内存中。 我有以下问题:
- 如果我再次调用上述代码会发生什么?是否会在内存中为“ClassA”创建新实例,还是会返回相同的加载类引用?
- 如果是,根据 javarevisited 的 post,“通过使用单独的 ClassLoader,您还可以从多个源加载相同的类,它们将在 JVM 中被视为不同的类” 它有什么用?
【问题讨论】:
-
顺便说一句:
Class.forName返回一个Class类型的对象,而不是在 forName 中传递的类的实例。ClassA a= Class.forName("com.test.ClassA")不正确。应该是Class a= Class.forName("com.test.ClassA")
标签: java class classloader