&和&&的区别

&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。

 

 

理解:

| : 会检查每一个 条件的真伪,再做“或”运算 (光棍的不怕死)
||: 按照条件写的顺序,直到一个为true时,后面的条件则不再检查,直接进入条件 
& : 会检查每一个 条件的真伪,再做“与”运算  (光棍的不怕死)
&&: 按照条件写的顺序,直到一个为false时,后面的条件则不再检查,直接跳出 

 

&是位运算符,表示按位与运算。&&是逻辑运算符,会短路。

 

 

 

 

 

 

 

例如:

 

 public static void main(String []args)
 {
  String str=null;
  if(str!=null && str.length()==1)
  {
   System.out.println("sssssss");
  }else
  {
   System.out.println("ccccccccccc");
  }
 }

 

打印ccccccc

 

 

 

str为null  str!=null结果为false,后面的str.length()==1就不会检查后面的值了,if()中直接返回false。不会报错。

 

 

 

改一下:

 

 public static void main(String []args)
 {
  String str=null;
  if(str==null && str.length()==1)
  {
   System.out.println("sssssss");
  }else
  {
   System.out.println("ccccccccccc");
  }
 }

 

结果:

 

Exception in thread "main" java.lang.NullPointerException
 at edit.main(edit.java:6)

 

str==null结果为true,则会检查后面的值

 

 

 

&为按位与(AND) 

按位与运算符“&”,如果两个运算数都是1,则结果为1。其他情况下,结果均为零。看下面的例子: 

00101010 (值为42) &   0001111 (值为15)  

00001010 (值为10) 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值