&与&&的区别?

1.&与&&的区别?

共同点:
都为逻辑与(and),java中逻辑运算符与离散数学等的逻辑运算符是类似的,两边表达式都为真(true)则为真,否则为假(false);
不同点:
&&的短路特性,短路特性是什么呢?用&&连接两个表达式时,当前一个表达式为假(false)则跳过对另一个表达式的计算。引用较为典型的例子:
if(str!=null&&str!=""),运行时表达式一结果为假则不进行表达式二的判断,那么,我们在异常上因为两者的这一不同点有了不同:
&&因为表达式一判断str为空(null)时,表达式不执行不会报空指针异常,而if(str!=null&str!="")两个表达式都会执行,所以会出现空指针异常。
此外,由于短路特性,表达式二为对变量的值运算时,&与&&也会有表达式一不成立表达式二变量值是否发生改变的问题。
&可作为位运算符,当&操作符两边的表达式不是boolean时, &表示按位与运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值