`
edr_
  • 浏览: 166212 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

&&与&的区别

    博客分类:
  • J2SE
阅读更多

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

  • &&、&均可以作为逻辑运算符,表示逻辑"且(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

 

分享到:
评论
2 楼 edr_ 2013-03-03  
wpf523 写道
应该是这样的吧?     && 起到短路作用,当str为null时不会执行后面程序段。
//如果使用&&的话就不会出现异常 
if(str != null & !str.equals(“”)){ 
   System.out.print("测试&&与&之间的区别"); 

正解!谢谢提醒!
1 楼 wpf523 2013-01-16  
应该是这样的吧?     && 起到短路作用,当str为null时不会执行后面程序段。
//如果使用&&的话就不会出现异常 
if(str != null & !str.equals(“”)){ 
   System.out.print("测试&&与&之间的区别"); 

相关推荐

Global site tag (gtag.js) - Google Analytics