java语言中&&与& ||与|有什么区别

谢谢!!

&& 逻辑运算and,当两个条件都为真的时候才为真。

||逻辑运算or,只要有一个条件为真就为真。

而& 和 | 属于位运算。

逻辑运算与位运算最大的区别在于

逻辑运算支持短路运算,

而位运算不支持短路运算。

短路运算就是 位运算if(条件1 & 条件2){}
当第一个条件不满足的时候还会判断条件2,

但是逻辑运算if(条件1 &&条件2){}
当第一个条件不满足的时候不会判断条件2.

逻辑|| 跟位运算| 同上。

我能说的也就这么多 - -
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-09-11
我服了,没经过测试就到这里来忽悠人,还有下面那个,竟然说他们说得很对...害我又测试一遍,
在java中和c不同,java中&&和||已经是短路操作了,测试
String str = null;
System.out.println(true||str.equals(""));
明显没问题,如果没短路,肯定会出现NullPointerException
再测试
String str = null;
System.out.println(true|str.equals(""));
控制台马上就出现了异常.....
String str = null;
System.out.println(false&&str.equals(""))
不会出现异常
看到了啥时候是短路,啥时候不是短路了吧

a&&b 当a为真时会去检查b是否为真当两个同时为真是返回真,当a为假时不去检查b

& 或者 | 操作整数的时候请参考http://hi.baidu.com/injava/blog/item/2735c743a395321372f05d1b.html
当& 和| 操作boolean的时候,就是不短路操作
例如
a&b 当a为false的时候还是会去检查b的值.例如:
(i>5)&(--i==10)也就是说,不管i大不大于5,i总是要减的.

javaQQ群:76397268 期待你的加入本回答被提问者采纳
第2个回答  2009-09-11
以上两位已经讲得很对了
第3个回答  2009-09-11
&&和||是逻辑运算符,&和|是短路运算符。当有多个表达式用&&或||连接起来时,不管表达式有多少个,都会先把每一个表达式都计算过,再进行&&或||运算。而&或|而言,如果第一个操作数已经出来结果,就不会计算后面的了。
举个例子:
int a=0;
int b=0;
if(a==0 | b++>0){
System.out.println(b);
}//输出b的值是0;因为a==0为真,就不会计算后面的算式b++了。

int a=0;
int b=0;
if(a==0 || b++>0){
System.out.println(b);
}//输出b的值是1;因为先计算两个算式的真假值,再比较。

7

JAVA中&&和&、||和|的区别?
“1、Java中&叫做按位与,&&叫做短路与,它们的区别是: & 既是位运算符又是逻辑运算符,&的两侧可以是int,也可以是boolean表达式,当&两侧是int时,要先把运算符两侧的数转化为二进制数再进行运算,而短路与(&&)的两侧要求必须是布尔表达式。举例如下:12&5 的值是多少...”...

java里&&和||有什么区别?
JAVA中&&意思是“条件与”逻辑操作符,使用方法是x&&y,功能描述:x和y均为true,取值是true,否则取值是false。JAVA中||意思是“条件或”逻辑操作符,使用方法是x||y,功能描述:x和y有一个为true,取值是true,否则取值是false。

java中&和and有什么区别?
1、 相同点:在java中”&&”和”&”都是逻辑运算符。2、区别举例:int i=0,j=1。if(i++&&j++)。System.out.println(“j=”+j)。的输出结果是:j=1;而如果换成”&”则程序的输出结果将为:j=2,在我们书写的程序中一般是不会用后者的,因为我们的目的是必须两者都为真才执行下面的语...

JAVA中&&和||是什么意思 怎么用
1、Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。2、Java具有简单性、面向对象、分...

java 中|| 和 && 这类的符号都表示什么?
&&和||是一种逻辑运算符,&&是逻辑与,当两个数都为真,则结果为真。||是逻辑或,两个数任意一个为真,则结果为真。举个例子:1、a && b 当a、b都为真时,结果为真。有一个为假或者都为假时结果为假。2、a || b 当a、b有一个为真时,结果为真。a、b都为假时结果为假。

&&和||的区别是什么?
“&&”表示 与,意为同时都要满足 “||”表示 或,意为二者或多着只要满足其中一个 我们可以用代码来举例:代码中有两个输出语句,分别为Good和Nice,我们分析下,a = b = 1,c = 2,第一个判断条件中,我们判断 a == b && (且)a == c,很明显,a等于b但是a不等于c,所以不成立,不...

论&和&&的区别?
在编程世界中,逻辑运算符是构建条件和决策的基础。其中,"&" 和 "&&" 运算符是Java语言中常见的逻辑运算符,它们各自有着独特的功能和用途。接下来,我们将深入探讨这两个运算符的区别,希望能帮助读者更好地理解和应用。&& 运算符是一个逻辑运算符,它代表“与”的概念。当这个运算符两边的表达式...

&&和||有什么区别吗?
在C语言中,&&和||都属于逻辑运算符,并且都是双目运算符。逻辑运算符总共有3个,分别是"&&"、"||"和"!"。a && b,一假必假,结合性从左至右。||是逻辑或运算符,a || b,一真必真,结合性从左至右。&&和||在Java和PHP以及c#中都是逻辑操作符,也叫条件操作符。

JAVA中&&和||是什么意思 怎么用
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象、分布式、健壮...

&和&&的区别
相比之下,&&运算符,也称为逻辑与且,只有当前面的条件为真时,才会执行后面的语句。这种“短路”特性使得在条件不满足时,可以避免不必要的计算,提高了代码效率。在Java、PHP、C#等语言中,&&主要用于条件判断,而在批处理命令bat中,它则用于确保命令按顺序执行,若前面命令出错,则会停止后续命令的...

相似回答