Java 将布尔变量设置为条件?

Java 将布尔变量设置为条件?,java,boolean,Java,Boolean,两者之间有什么明显的区别吗 boolean foo= bar>1; 及 我注意到,在第一个示例中,立即评估条件,如下所示 int bar=3; boolean foo= bar>1; bar =0; if(foo){ System.out.println("Foobar"); } 将打印Foobar,而如果条件在if语句中,则根本不会打印。到目前为止,这与使用三元运算符从一开始就给布尔变量一个真/假值相同,或者三元运算符是高度冗余的。假设不等式将返回布尔结果,则不需要对其

两者之间有什么明显的区别吗

boolean foo= bar>1;

我注意到,在第一个示例中,立即评估条件,如下所示

int bar=3;
boolean foo= bar>1;
bar =0;
if(foo){
    System.out.println("Foobar");
}

将打印
Foobar
,而如果条件在
if
语句中,则根本不会打印。到目前为止,这与使用三元运算符从一开始就给布尔变量一个真/假值相同,或者三元运算符是高度冗余的。假设不等式将返回布尔结果,则不需要对其执行任何类型的三元运算。

三元是高度冗余的。假设不等式将返回一个布尔结果,您不需要对它执行任何类型的三元运算。

我想补充一件事,这两个代码将生成相同的字节码。为了证明这一点,您可以使用Java类文件反汇编程序(
javap


使用该命令反汇编
文件
javap-c com.package.MyClass
,您将发现对于这两个代码JVM将生成相同的字节码。因此,这两种说法都没有好处或坏处。但是这里肯定是redaundant
我想补充一件事,这两个代码将生成相同的字节码。为了证明这一点,您可以使用Java类文件反汇编程序(
javap


使用该命令反汇编
文件
javap-c com.package.MyClass
,您将发现对于这两个代码JVM将生成相同的字节码。因此,这两种说法都没有好处或坏处。但是肯定的是,这里是redaundant,这就是我的想法,因为我知道它没有计算if语句中的变量,我只是确保它没有任何额外的细微差别。这就是我的想法,因为我知道它没有计算if语句中的变量,我只是想确保没有任何额外的细微差别。
int bar=3;
boolean foo= bar>1;
bar =0;
if(foo){
    System.out.println("Foobar");
}