您的位置:首页 > 其它

&&和&的联系与区别

2015-09-16 00:23 387 查看
&&和&的联系与区别
联系:

都是逻辑与运算符,双目运算符,比如 a = 1; if(a == 0 && ++b > 0) 只有两边都为true时,整个式子为true。

区别:

1、&&具有短路的功能,比如 a = 1; if(a == 0 && ++b > 0) ,a==0为false,++b不会进行判断,也就是b的值不会增加。

&没有短路功能,运算符两边都会运算,a = 1; if( a==0 & ++b > 0),即使a==0是false,b的值也会加1;

2、&还可作为位运算,当&两边的表达式的值不是boolean类型值时,表示位运算。将十进制转换为二进制进行按位与操作。我们通 常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31
& 0x0f的结果为0x01。

public class Test {

public static void main(String[] args) {
int a = 1;
int b = 10;
int c = 10;
if (a == 0 && ++b > 0) {//&&有短路功能,b值不变
} else {
System.out.println("--b-->" + b);
}

if (a == 0 & ++c > 0) {//&两边都会运算,c值加1
} else {
System.out.println("--c-->" + c);
}

}
}
运算结果如下:

--b-->10
--c-->11
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: