<分区>
我正在使用 Code Pro查看我的应用程序代码和工具,并返回消息:
Warning: equality test with boolean literal
对于这段代码:
boolean valid;
if(valid == true)
可以通过以下方法修复:
if(valid)
我有两个问题:
- 这只是一种良好的编码习惯吗?
- 在内存优化方面还有其他好处吗? 性能优化?
<分区>
我正在使用 Code Pro查看我的应用程序代码和工具,并返回消息:
Warning: equality test with boolean literal
对于这段代码:
boolean valid;
if(valid == true)
可以通过以下方法修复:
if(valid)
我有两个问题:
最佳答案
对于更直接的 boolean 表达式:
boolean valid = true;
if(valid) {
}
生成如下字节码:
0: iconst_1
1: istore_1
2: iload_1
3: ifeq 6
6: return
鉴于扩展比较:
boolean valid = true;
if(valid == true) {
}
生成如下字节码:
0: iconst_1
1: istore_1
2: iload_1
3: iconst_1
4: if_icmpne 7
7: return
我怀疑 ifeq
和 if_icmpne
的执行速度不同,所以 if(valid == true)
的额外成本真的只是额外的常量值,可以忽略不计。
总而言之,确实没有性能差异,CodePro 将您的代码标记为单独的最佳实践。
关于java - "Equality test with boolean literal"- 测试 boolean 值和使用 == 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15583415/
相关文章:
java - 写出一个无限和的公式,为什么它不能像写的那样工作?
java - java中的getRuntime.exec()是否理解*?
java - 在Java代码约定中,实例变量应该放在方法之前还是方法之后?
python - 访问远程相关 Django 模型的最佳实践
java - 在 Ant 任务中运行 "headless Eclipse"
java - 是否有 Sonar、Findbugs 或 PMD 规则来检测 CodePro 检测到的这种可能的 NPE?
java - Google GCM 中是否强制使用 JSON 形式的请求?