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