OpenJDK为什么将私有方法放入vtable?

拉德克·米塞克(Radek Micek)

似乎openJDK 8final既不是也不staticvtable的私有方法放置了。如果动态绑定未用于私有方法(因为它们是通过invokespecial调用的),为什么会使用它呢?

脂蛋白

当超类中存在具有相同名称和签名的可重写方法时,这样做是为了处理一些罕见的情况。尽管肯定有改进的地方,但是可能针对JDK 9。

参见https://bugs.openjdk.java.net/browse/JDK-8024368

私有方法总是获得一个vtable条目来处理与类的向后兼容性-即,您可以在类的本地使用同一个私有方法的名称,也可以从您的超类继承一个方法,该方法将被您的私有方法继承儿童。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么嘲笑私有方法进入方法?

为什么UIButton可以将消息发送到私有方法?

为什么私有方法也不能最终确定?

为什么内部类使私有方法可访问?

为什么私有设置器的行为与其他私有方法不同?

私有是私有的,那么为什么Java赋予使用反射访问私有方法的便利?

为什么子对象调用具有 main 方法的超类的私有方法?

当非常量方法是私有方法时,为什么不调用公共常量方法?

为什么在使用Powermock模拟私有方法时调用真实方法?

为什么要将公共异步方法的内部逻辑分为私有方法?

为什么方法“ printperson()”不调用子类的私有方法?

为什么甚至可以更改私有成员或使用反射在C#中运行私有方法?

为什么我要在另一个实例上调用私有方法?

为什么可以在WCF服务中公开公开私有方法?

为什么我可以在单元测试类中访问私有方法

为什么在超级上下文中调用私有方法?

为什么可以在Spock中测试私有方法/字段而不会出现问题?

为什么我可以使用反射来调用外部类的私有方法?

为什么Java编译器11使用invokevirtual来调用私有方法?

java @SafeVarargs为什么私有方法需要是最终的

为什么要在Java和.Net中反映和调用(不是这样)私有方法

为什么从另一个类执行此私有方法?

为什么ruby允许子类访问父级的私有方法?

为什么Scala 2.11编译器会重命名我的私有方法?

有什么方法可以调用私有方法吗?

将私有方法定为最终方法?

将公共方法转换为私有方法

什么时候在Rails中使用私有方法?

覆盖私有方法