Java编程中的二进制兼容性与语句执行机制解析
1. 二进制兼容性相关规则
在Java编程里,二进制兼容性是一个关键概念,它关乎代码在更新时能否与已有的二进制文件保持兼容。下面详细介绍各类元素的二进制兼容性规则。
1.1 transient字段
添加或删除字段的transient修饰符,不会破坏与现有二进制文件的兼容性。这意味着在对字段进行transient修饰符的操作时,无需担心会影响到之前编译好的二进制文件。
1.2 方法和构造函数声明
- 添加声明 :向类中添加方法或构造函数声明,通常不会破坏与现有二进制文件的兼容性。不过,若因类型无法重新编译,且之前的调用引用了超类中不兼容类型的方法或构造函数,已编译的类仍会继续引用超类中声明的方法或构造函数。例如,假设存在对方法m的引用,其限定类型为T,而m实际上是T的超类S中声明的实例(或静态)方法。若在S的子类(该子类也是T的超类或T本身)中添加了与m具有相同签名和返回类型的新方法X,可能会出现链接错误。链接错误仅在满足以下条件之一时发生:新方法的可访问性低于旧方法;新方法是静态(或实例)方法。
- 删除声明 :从类中删除方法或构造函数可能会破坏与引用该方法或构造函数的现有二进制文件的兼容性,可能会抛出NoSuchMethodError异常。只有当超类中没有声明具有匹配签名和返回类型的方法时,才会出现此错误。
- 默认构造函数 :若类的源代码中没有声明构造函数,Java编译器会自动提供一个无参数的构造函数。向此类的源代码中添
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



