抱歉,如果这是一个愚蠢的问题,但我对 Java 编程还很陌生。
我在线程中存储了一个 boolean 值,但我不知道它是 true 还是 false。
我有一个设置 boolean 值true
的方法setBooleanTrue()
,但是如果 boolean 值已经是true
怎么办?它将再次将 boolean 值设置为 true
?
因此我想问你是否应该添加以下控件:
if(!testboolean)
testboolean=true;
谢谢。
最佳答案
如果您对添加条件节省的时间感兴趣,请查看以下内容:
下面我写出了您的代码的两个版本,以及相应的生成的 java 字节码。
boolean b = true;
if(!b)
b=true;
0: iconst_1
1: istore_1
2: iload_1
3: ifne
6: iconst_1
7: istore_1
8: return
boolean b = true;
b=true;
0: iconst_1
1: istore_1
2: iconst_1
3: istore_1
4: return
如您所见,直接重新分配boolean
会生成更少的字节码。
乍一看,这似乎是答案。不幸的是,事情并没有那么简单。看看运行时环境做了这个名为 branch prediction 的奇特事情。 。如果连续运行一行代码,JVM 将尝试“预测”条件的结果。
这可能是一件非常好的事情,也可能是一件非常糟糕的事情。您对 boolean 值的期望值、快速连续检查的次数以及它是否可能通过多次调用保持某个值将决定您是否应该添加条件语句。
关于java - 设置 boolean 值之前进行控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43915251/