一 . 首先两者都是逻辑与运算
1.都具备逻辑与的功能
if (true&&true) {
System.out.println("true");
}
//结果:true
if (true&true) {
System.out.println("true");
}
//结果:true
2.&&具有短路的功能 ,而&则没有这个功能
int i = 1, j = 1;
if (i++ > 3 && j++ > 2) {
}
System.out.println("i:" + i + "\tj:" + j);
//结果:i:2 j:1
int i = 1, j = 1;
if (i++ > 3 & j++ > 2) {
}
System.out.println("i:" + i + "\tj:" + j);
//结果i:2 j:2
二 . &不仅是逻辑与运算,而且当&的两边不是boolean类型时,&则表达的是按位与的操作
int i = 2, j = 3; //2=00000010 3=00000011
System.out.println("i&j : " + (i&j));
//结果:i&j : 2