A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 罗宝 中级黑马   /  2012-11-4 13:27  /  1621 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 罗宝 于 2012-11-6 22:10 编辑

                帮忙解释一下,&和&&都有什么区别?

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

6 个回复

倒序浏览
&是位运算符,&&是布尔逻辑运算符而且是短路与操作符。
注意:&就根本不应该作为逻辑运算用的。所谓的可以作为逻辑运算实际上是判断运算的结果是不是等于0,而由于要进行逻辑与操作,必须先要求出两边操作数的值(这个就好像是非短路了)。不过这不是java语言所支持的,混淆了和C的区别。绝对错误的概念。
& 是按二进制的按位与,即 1 & 1 = 1   1 & 0 = 0   3 & 1 → 11(二进制) & 1 = 1
&& 是逻辑与,true & true = true, true & false = false

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
&和&&都是逻辑与的运算符,不同之处在于:&&有短路功能,第一个表达式为false时,不再计算第二个表达式;&则会计算两个表达式
                                                            &还可以用作位运算符

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
&既可以做位运算符,也可以做逻辑运算符
&&只能做逻辑运算符
&在做位运算符时,只有全为1时,结果才为1
   在做逻辑运算符时,两边都要判断,两边全为true,结果才为true,
&&在做逻辑运算时, 会有短路现象,即第一个为false时,不再判断第二的值,直接返回false
     相比之下,效率高一些
&&一般用在if的条件表达式或者循环结构的循环条件中

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
  &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
  &&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。If(x==33 & ++y>0) y会增长,If(x==33 && ++y>0)不会增长
  &还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。
  

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
这个是短路与和非短路与的区别,给你举几个例子就可以简单的理解:
1:    &的作用
  1. <div class="blockcode"><blockquote>public class Demo{
  2.      public static viod main(String args[]){
  3.          if(10!=10&10/0==0){
  4.            System.out.println("条件满足");
  5.         }
  6.     }
  7. }
复制代码
程序运行有错误,原因在于&的操作要把所有的条件进行判断。
2:  &&的作用
  1. public class Demo{
  2.         public static viod main(String args[]){
  3.               if(10!=10&&10/0==0){
  4.                System.out.println("条件满足");
  5.             }   
  6.        }
  7. }
复制代码
程序运行后,就可以发现不再出现以上的错误,原因在于,第一个条件不满足,那么后面的条件就不再判断了。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
上面解释的都已经很清楚了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马