Java VM是否跳过零乘法?
我想知道Java虚拟机是否避免了零乘。谢谢
解决方案
根据Java Language Spec,"在执行操作本身的任何部分之前,运算符的每个操作数(条件运算符&;&;、||和?:除外)似乎都已完全求值。"
因此,即使编译器或运行时可以检测到一个因素为零,如果另一个因素可能有副作用,它仍然必须评估另一个因素。
相关文章
我想知道Java虚拟机是否避免了零乘。谢谢
根据Java Language Spec,"在执行操作本身的任何部分之前,运算符的每个操作数(条件运算符&;&;、||和?:除外)似乎都已完全求值。"
因此,即使编译器或运行时可以检测到一个因素为零,如果另一个因素可能有副作用,它仍然必须评估另一个因素。
相关文章