黑马程序员技术交流社区

标题: &和&&的区别(面试必会) [打印本页]

作者: liming_heima    时间: 2015-6-20 18:07
标题: &和&&的区别(面试必会)
&和&&都可以用作逻辑与的运算符,表示逻辑与(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。
作者: lizhi1817    时间: 2015-6-20 18:21
不错哦 学习了
作者: 谢志宝    时间: 2015-6-20 20:58
跟我们第一天考试的不一样呢
作者: 纪青超    时间: 2015-6-20 21:15
&这个不是用于二进制数据运算的吗?相当于与运算。
作者: a1224577182    时间: 2015-6-20 22:15
感谢分享!!
作者: 腹黑生姜    时间: 2015-6-20 22:22
必会吗!
作者: 繁华落幕    时间: 2015-6-20 23:00
纪青超 发表于 2015-6-20 21:15
&这个不是用于二进制数据运算的吗?相当于与运算。

它是位运算符  但也是逻辑运算符,,当有&&的时候 那代表的就是逻辑运算符了
作者: AIE    时间: 2015-6-20 23:32
&&有短路功能
作者: 金亮0602    时间: 2015-6-20 23:54
学习了,以后会注意的,多谢你的提醒
作者: 我了个去    时间: 2015-6-21 09:13
不错哦!基础一定得扎实才行
作者: 朱智琳    时间: 2015-6-21 17:26
挺有用   
作者: zuopiezi    时间: 2015-6-21 17:34
学习学习。。。
作者: 追忆似水年华    时间: 2015-6-21 18:12
不错学习,学习。

作者: 十字天堂    时间: 2015-6-21 18:30
写的不错{:3_64:}
作者: Nemo    时间: 2015-6-21 18:47
不错不错啊
作者: 中平    时间: 2015-6-21 19:23
必会题有用!!
作者: 一口老郭    时间: 2015-6-21 20:06
很详细啊
作者: 安安安    时间: 2015-6-21 20:33
恩。学习了。。
作者: 精灵来了    时间: 2015-6-21 20:56
&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,&还可以用作位运算符
作者: 15311068548    时间: 2015-6-21 20:59
谢谢大神们的分享
作者: fyg408224345    时间: 2015-6-21 21:02
||也一样。也具有短路功能
作者: 小龙编程世界    时间: 2015-6-21 21:07
&&是短路与




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2