gpt4 book ai didi

java - Java 中的类加载器

转载 作者:行者123 更新时间:2023-11-30 09:33:31 25 4
gpt4 key购买 nike

类加载器是分层的。子类加载器要求父类加载类,如果父类不能加载类,则子类加载器通过保持唯一性来加载类。父类加载的所有类都可以被子类加载器访问,但反之则不然。我脑子里出现了一个问题: child 要求 parent 加载类,但是由于某些问题, parent 无法加载,所以 child 在JVM中加载它。在某个时候,父级需要该类,显然父级无法看到 JVM 中加载了哪些子类加载器的类,那么父级是否也会在 JVM 中加载该类?同一类的唯一性会发生什么变化?问题是如何解决的?任何好的指示将不胜感激。

最佳答案

parent was not able to load, so child loads it in the JVM

父类可能由于两个原因而无法加载该类:物理上未找到该类,或者它预计会出现一些暂时性故障。在前一种情况下,ClassLoader 将抛出一个 ClassNotFoundException 并且永远不会改变。在后者中,父类会抛出一个不同的异常,中断子类加载器。所以这种情况绝对不应该发生。

What happens to the uniqueness of the same class?

在这种情况下不是,但从技术上讲这是可能的,尤其是在具有复杂类加载器层次结构的应用程序服务器中。本质上两个类加载器可以加载相同的类,它们是不兼容的(你可以得到 ClassCastException)。

关于java - Java 中的类加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12131945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com