gpt4 book ai didi

java - 设置 boolean 值之前进行控制?

转载 作者:太空宇宙 更新时间:2023-11-04 11:29:53 25 4
gpt4 key购买 nike

抱歉,如果这是一个愚蠢的问题,但我对 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com