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

看起来,openJDK 8将私有方法放入vtable中并不是finalstatic 。 为什么当动态绑定不用于私有方法(因为它们是用invokespecial调用的)还是被使用?


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

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

私有方法总是得到一个vtable条目来处理与类的向后兼容性 - 也就是说,你可以拥有与你的类本地私有方法相同的名称,并且还可以从你的父类继承一个方法,它将继承私有方法儿童。

链接地址: http://www.djcxy.com/p/83767.html

上一篇: Why does OpenJDK place private methods into vtable?

下一篇: How do I listen to TPL TaskStarted/TaskCompleted ETW events