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

前端之家收集整理的这篇文章主要介绍了java – 为什么OpenJDK将私有方法放入vtable?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
似乎 openJDK 8将非最终的静态方法放入vtable中.为什么当动态绑定不用于私有方法时(因为它们是用 invokespecial调用的)或是否使用它?

解决方法

这样做是为了处理在超类中存在具有相同名称和签名的可覆盖方法时的一些罕见情况.虽然肯定有一个改进的地方,但可能是针对JDK 9的.

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

Private methods always get a vtable entry to handle backward compatibility with classes – i.e. you can have the same name of a private method local to your class and also inherit a method of from your superclass,which will get inherited around the private method,by your child.

猜你在找的Java相关文章