&&与&的区别

荒凉许久的博客.....今天就来写下&&与&之间的区别:

  • &&、&均可以作为逻辑运算符,表示逻辑"且(and)",只有当所有判断均为true时才返回true,否则只有出现一个false则返回false。
  • 其次&&还有短路的功能,这也是为什么叫做短路与的来源。“短路”,利用物理的常识也就是前方一旦有错误,后面一切免谈。也就是说在判断时,只要有false,后面的假如有类似于计数器之类的程序段或者可能抛出异常的程序段均不执行,也因此有可能会影响到程序的结果。例如:
//没有起到计数器的作用
if(str != null && i--!=0){
   System.out.print("测试&&与&之间的区别");
}
//如果使用&&的话就不会出现异常
if(str != null & !str.equals(“”)){
   System.out.print("测试&&与&之间的区别");
}
  • 而&则还有位运算的功能;

   当&两边均不是boolean类型的话则进行为运算,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位
例如:
0x31 & 0x0f的结果为0x01

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值