java - 什么是 JVM 中的动态链接失败?

标签 java jvm

在 Oracle 的 Java 中 - Essential Classes Trail我发现以下说法:

Error Class

When a dynamic linking failure or other hard failure in the Java virtual machine occurs, the virtual machine throws an Error. [...]

Java 和 JVM 上下文中的动态链接失败到底意味着什么?这与类加载器在运行时可能遇到的问题有关吗?

最佳答案

在 Java 中,您可以动态加载 Class 对象,验证该 Class 及其实例是否与当前加载的类兼容的逻辑称为动态链接。

以下是您可能以 java.lang.LinkageError 形式获取链接失败的示例:

1)你有类和接口(interface)。您稍后可以修改该接口(interface)方法签名并使用该新接口(interface)启动 VM。现在,如果您动态尝试加载类,您将遇到链接失败,因为该类是使用旧版本的接口(interface)方法签名编译的,并且无法使用新的接口(interface)方法签名。

2) 您从类加载器 CL1 和 CL2 加载相同的类。然后,您从 CL1 加载的类创建对象 o1 并在 CL2 加载的代码中使用该对象。

关于java - 什么是 JVM 中的动态链接失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44398939/

相关文章:

java - Sun JVM (JRE jre1.6.0_24) 段错误 NET_Read

java - 与常规 Java 类相比,JVM 如何执行 servlet?

java.util.date 仅获取 y-m-d 的毫秒数

java - 将字符串转换为字节数组 (0x) - Java

java - 如何更改 JtabbedPane 鼠标悬停时选项卡文本的颜色?

java - xmx 和 MaxRAM JVM 参数有什么区别?

java - 空闲时的JVM锯齿模式? JVM在此期间做了什么?

java - 我应该如何诊断和防止 JVM 崩溃?

java - 测试复杂的数据场景

java - Java Swing Eclipse - JPanel 和组件自动调整大小