相同点:都是逻辑运算符,在Java程序中,使用与操作,要求所有表达式的判断结果都是true,才为真,若有一个为false,那么最终判断结果则为false。
不同点:
1、短路功能
A&&B,假如A为false,则B不会执行;
不同点:
1、短路功能
A&&B,假如A为false,则B不会执行;
A&B,假如A为false,B依然执行;
public void test() {
if (false && check()) {}//不输出"Hello..."
if (false & check()) {}//输出"Hello..."
}
private boolean check(){
System.out.println("Hello...");
return true;
}
这时候要注意&的使用,譬如
String str = null;
if (str!=null & str.equals("")) {} //java.lang.NullPointerException
或者
int count=0;
if (count!=0 & count++==0) {} //count==1
2、&具有与运算功能
int count=0&15;//count==0
拓展:同样,可以对比|和||的区别。