是代码
while(currentLine <= endLine)
{
// more code
currentLine++;
}
相当于
while(currentLine < endLine || currentLine == endLine)
{
// more code
currentLine++;
}
在表现方面?
答案 0 :(得分:8)
<=
操作通常编译为单个字节码指令if_icmple
或ifle
。 JVM如何解释通常依赖于机器,但大多数硬件都支持评估&lt;和&lt; =作为单个指令。因此,您可能希望<=
的效果与<
相同。
Java编译器可能会将第二个代码重写为第一个代码,这意味着不会有性能损失。但是,这是一个实现细节。
一般来说,除非您确定它们是导致性能瓶颈的原因,否则不要担心这些微观优化。像这样的决定会对程序运行时产生深远影响,这是非常罕见的。
希望这有帮助!
答案 1 :(得分:0)
好吧,你可以争论如果短路逻辑比比较更有效,我会选择第一个,无论如何如果优化器足够聪明,你写它的方式并不重要。