加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – “使用布尔文字进行相等性测试” – 测试布尔值与使用之

发布时间:2020-12-15 04:08:37 所属栏目:Java 来源:网络整理
导读:参见英文答案 Boolean checking in the ‘if’ condition????????????????????????????????????10个 我使用 Code Pro查看我的应用程序代码,并使用以下消息报告该工具: Warning: equality test with boolean literal 对于此代码: boolean valid;if(valid ==
参见英文答案 > Boolean checking in the ‘if’ condition????????????????????????????????????10个
我使用 Code Pro查看我的应用程序代码,并使用以下消息报告该工具:

Warning: equality test with boolean literal

对于此代码:

boolean valid;
if(valid == true)

可以使用以下方法修复:

if(valid)

我有两个问题:

>这只是一个很好的编码实践吗?
>在内存优化方面还有其他好处吗?
???性能优化?

解决方法

对于更直接的布尔表达式:

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将您的代码标记为单独的最佳实践.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读