Java逻辑运算符之&和&&的联系与区别

首先,&(逻辑与)&&(短路与) 都是Java语言当中的逻辑运算符,就&和&&的最终运算结果来看,这两者没有任何区别。
实际上,逻辑运算符&和&&都表示“逻辑与”,那么它们之间的区别在哪里呢?就这两个运算符的运算规则来看,只有运算符两边表达式的结果都为true,那么“逻辑与”之后的结果才为true,除此之外的情况皆为false。使用逻辑运算符“&”会判断两边的表达式;而运算符“&&”则是针对一侧的表达式的运算结果来决定另一侧的表达式是否执行,当第一个表达式为false时则不去判断第二个表达式,相当于直接屏蔽掉了第二个表达式的执行,直接输出结果从而节省计算机判断的次数。通常将这种再逻辑表达式中从左端的表达式可推断出整个表达式的值称为”短路“,而那些始终执行逻辑运算符两边的表达式称为”非短路“。由此可见,”&&“属于短路运算符,而”&“属于非短路运算符,并且,显而易见”&&“的执行效率要比”&“高。
举例说明:

int x=1;
int y=2;
boolean b1 = (x>y)&(x>y++);//执行结束后y的值为3
//boolean b2 = (x>y)&&(x>y++);//执行结束后y的值仍为2
System.out.println(y);

以上内容均为个人学习的一点心得,其中的知识点若有错误请留言提醒,若有侵权内容提醒马上删除。

猜你喜欢

转载自blog.csdn.net/pf6668/article/details/107305862
今日推荐