java - loadClass(String name) 和 loadClass(String name, boolean resolve) 的区别

标签 java classloader

loadClass(String name) 之间有什么区别?和 loadClass(String name, boolean resolve)

我知道的唯一区别是如果 resolve 参数为真,loadClass(String name, boolean resolve) 调用 findLoadedClass(String)?

那么什么时候将 true 或 false 传递给 resolve 参数?
我对这两个功能很困惑。

谢谢。

最佳答案

resolve 参数控制加载的类是否链接。在链接期间,静态常量被初始化并分配内存。此外,该类的正确性得到验证,并且可能会解析到其他类的链接。

这可能很有用,例如,如果您想加载一个可能格式错误的新类,并且不希望 JVM 在该类有问题的情况下抛出验证错误。

关于java - loadClass(String name) 和 loadClass(String name, boolean resolve) 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5428744/

相关文章:

java - Guava Resources getResource() 第一次不工作

java.lang.reflect.InitationTargetException,由: java. lang.NoClassDefFoundError引起:com/fasterxml/jackson/databind/ObjectMapper

java - 在 IntelliJ IDEA 下使用 Lombok 时无法编译项目

java - Mule 热部署耗尽 PermGen

java - 用于 WebSphere 和 Maven 的 deployment.xml

java - 缺少库 com.sun.tools.attach

java - 我可以在 Tomcat 上加载 servlet 类之前运行代码吗?

java - 奇怪的 Java 变量绑定(bind)行为

java - 如何用CustomView替换工具栏标题

java - 使用hibernate 4.2.0需要哪些库?