Java中的逻辑运算符
运算符 !(定义为“非”)、&& (定义为“与”)、||(定义为“或”)执行布尔逻辑表达式。
在运用逻辑运算符进行相关的操作,就不得不说“短路”现象。代码如下:
if(1==1 && 1==2 && 1==3){}
代码从左至右执行,执行第一个逻辑表达式后:true && 12 && 13
执行第二个逻辑表达式后:true && false && 13
因为其中有一个表达式的值是false,可以判定整个表达式的值是false,就没有必要执行第三个表达式了,所以Java虚拟机不执行13代码,就好像被短路掉了。
逻辑或也存在“短路”现象,当执行到有一个表达式的值为true时,整个表达式的值就为true,后面的代码就不执行了。
“短路”现象在多重判断和逻辑处理中非常有用。我们经常这样使用:
public void a(String str) {
if (str != null && str.trim().length() > 0) {
//do some thing;
}
}
如果str为null,那么执行str.trim().length()就会报错,短路现象保证了我们的代码能够正确执行。
在书写布尔表达式时,首先处理主要条件,如果主要条件已经不满足,其他条件也就失去了处理的意义。也提高了代码的执行效率。