上一篇文章我们讲解了Virtual Call的定义并举例分析了Virtual Call在父类和子类中的优化。JIT对类可以进行优化,那么对于interface可不可以做同样的优化么?List应该是大家最最常用的接口了,我想这个大家应该不会反驳。今天我们就拿List来做例子,体验一下JIT优化接口的奥秘。上面我们先循环ArrayList,然后再循环LinkedList。看下结果有什么不同:可以看到,JIT先比较了ArrayList,然后只做了一次方法的优化。上面的结果是在C2编译器下,也就是level4的编译水平下解析的。不同的JVM版本可能优化方式不一样。大家可以自行实验。本文用实例展示了Virtual Call在interface上面的优化使用。
暂无评论