&和&&的区别
&和&&的区别
&运算符有两种用法:(1)按位与;(2)逻辑与。
&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true 整个表达式的值才是 true。&&之所以称为短路运算,是因为如果&&左边的表达式的值是 false,右边的表达式会被直接短路掉,不会进行运算。
public class BaseDataType {
public static boolean getFlag1() {
System.out.println("---getFlag1---");
return false;
}
public static boolean getFlag2() {
System.out.println("---getFlag2---");
return true;
}
public static void main(String[] args) {
if(getFlag1() & getFlag2()) {
}
}
}
public class BaseDataType {
public static boolean getFlag1() {
System.out.println("---getFlag1---");
return false;
}
public static boolean getFlag2() {
System.out.println("---getFlag2---");
return true;
}
public static void main(String[] args) {
if(getFlag1() && getFlag2()) {
}
}
}