java在不同的方法中优化多个逻辑“不”或“不相等”吗?

时间:2016-01-29 09:16:36

标签: java optimization boolean

让我们看一下示例代码如下(修改为私有字段):

<Button Style="{StaticResource buttonCommandStyle}" />

... 等等,我们的想法是,JVM或编译器是否优化了多个“not”,位于不同的方法中?

1 个答案:

答案 0 :(得分:1)

这不是由javac优化的,但是如果它知道在StupidNot.notEqual(如果有的话)的加载子类中永远不会覆盖StupidNot,则可以通过JIT编译器轻松优化。然后notEqual将被内联到anotherNotEqual中,并且在内联后将执行此优化。

如果StupidNot类有子类并且其中一些类重写了notEqual方法,那么JIT编译器仍然可以根据类型配置文件优化这种情况(如果它已知,例如,在大多数情况下,您使用StupidNot类而不使用其子类)。在这种情况下,JIT编译器会向anotherNotEqual方法添加快速类型检查,如果成功,将使用内联notEqual,否则将使用慢速虚拟调用。

另外请不要忘记anotherNotEqual也可以通过其他方法进行内联,因为它非常简单。