java中&和&&的区别?

java中还有||和|符号的区别... java中还有||和|符号的区别 展开
 我来答
lpdwaini258
推荐于2017-11-25 · TA获得超过1254个赞
知道小有建树答主
回答量:414
采纳率:100%
帮助的人:149万
展开全部
(&,|)它们是逻辑操作,(&&,||)它们是条件操作。

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

|| 按位或运算符 ,表示按位或运算,||是逻辑或算符,表示逻辑或运算。

条件操作只能操作布尔型的,而逻辑操作不仅可以操作布尔型,而且可以操作数值型的。
不同点:
对于A&B,不管a是否为假,仍然要判断B。
对于A|B,不管a是否为真,仍然要判断B。
而对于A&&B,A||B在以上情况就不会去判断B了。
帮助别人就是帮助自己,希望大家一块进步。
ppssyy1100
2009-07-01 · TA获得超过1793个赞
知道小有建树答主
回答量:170
采纳率:0%
帮助的人:236万
展开全部
java中的&&具有“短路”现象,也就是说,当&&左边的表达式为假时,就不再计算剩余的&&右边的值是否为真。而&则不同,就算&&左边的表达式是假,它还是会计算&右边的表达式。

而||和|也是一样道理的。

希望我的回答能给你点帮助。谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kellobnb
2009-07-01 · TA获得超过7655个赞
知道小有建树答主
回答量:2639
采纳率:0%
帮助的人:810万
展开全部
&有两种解释..一是按位与 另一个就是且(并且) &&只是并且的意思

下面说下&是且 时 和&&的关系..

if(a==b&b==c){
..
}
用&的话 程序会先判断a是否=b 如果不等于. 还要跳过判断b是否=c.

但如果
if(a==b&&b==c){
..
}
是这样的话..程序判断a!=b的话 直接后面的b是否=c就不做判断了..直接跳出.

明白了吧。所以&&叫做断位符...因为它使得少判断一句..提高了效率.!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lostmypen
2009-07-01 · TA获得超过170个赞
知道答主
回答量:102
采纳率:0%
帮助的人:80.9万
展开全部
一般情况下编程只需要用&&就好了,比如
boolean a = true;
boolean b = false;
boolean c = a&&b;
那么b的值就是false;

而&是位操作符,例如:
int a = 2;
int b = 3;
2的二进制为10;3的二进制为11;
那么
int c = a&b;
c的值就为10&11=10,所以c等于2。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
文学雄鹰9Z
2012-12-13
知道答主
回答量:81
采纳率:0%
帮助的人:105万
展开全部
&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算两边的表达式的结果都为true时,整个运算结果才为true。否则,只要有一方为false,则结果为false。
&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str!=null&&!str.equals(""))表达式,当str为null是,后面的表达式不会再执行,所以不会出现NullPointerException如果将&&改成&,则会抛出NullPointerException异常。If(x==3&++y>0) y会增长,if(x==3&&++y)不会增长。
&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低位4个bite位,例如,0x31&0x0f的结果为0x01。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式