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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ._抬眉﹏ 中级黑马   /  2014-4-11 11:16  /  1694 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

4 个回复

倒序浏览
&和&&的作用差不多,&&的左边如果为假,右边是不会判断的,&在任何情况下都会判断两边是否为true。在一般情况下,我们为了程序执行速度会选择&&。
回复 使用道具 举报 1 0
&和&&的作用差不多,&&的左边如果为假,右边是不会判断的,&在任何情况下都会判断两边是否为true。在一般情况下,我们为了程序执行速度会选择&&。
回复 使用道具 举报
学习一下啊
回复 使用道具 举报
本帖最后由 高志鹏1 于 2014-6-6 12:13 编辑

   &   可以当位运算符  也可以  当作逻辑与的运算符(只有当逻辑与是才有和&&区别一说)
   &--位运算符时:表示按位与运算
&--逻辑与时和&&的区别:&&具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式;&任何时候都会计算两个表达式
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马