整理java &,&&; |, ||的区别
2008-11-06 18:22
120 查看
&和| 是可以用做逻辑运算也可以用做位运算.
区别一:运算数据类型支持
&&和||只能用与逻辑运算 当你运行代码System.out.println(9&&10);时.
会抛出The operator && is undefined for the argument type(s) int, int 的错误 改成String也会报同样的错误.
通过在&&或||两边放置不同类型数据,发现他们只支持boolean类型.
而&和|两边则支持int boolean char三种类型,如果放的是int 或char则进行位运算,如果放的是boolean则进行逻辑运算
区别二:逻辑运算不同
计算p1&&p2时,Java先计算p1,若p1为true再计算p2;若p1为false,则不再计算P2,因此&&又称为条件与运
算符.而&的两个运算对象都要计算,所以,&又称为无条件与运算符.类似的还有 "|| " (条件或运算符,p1 ||
p2,Java先计算p1,若p1为FALSE再计算P2,若P1为TRUE,则不再计算P2)和 "| " (无条件运算符,两边对象
都要计算) .
例如:(a <2)&(b-- <2) 保证(b-- <2)能被计算.这样,无论a是否小于2,变量b都要减1.
要避免使用&和|运算符,它们好处不大.使用&和|运算符会使程序可读性降低,并且可能导致错误,比如:(x!=0)
&(100/x)当x为0时产生运行错误,而(x!=0)&&(100/x)没问题
如还有其他区别或以上分析有错误 欢迎指正
区别一:运算数据类型支持
&&和||只能用与逻辑运算 当你运行代码System.out.println(9&&10);时.
会抛出The operator && is undefined for the argument type(s) int, int 的错误 改成String也会报同样的错误.
通过在&&或||两边放置不同类型数据,发现他们只支持boolean类型.
而&和|两边则支持int boolean char三种类型,如果放的是int 或char则进行位运算,如果放的是boolean则进行逻辑运算
区别二:逻辑运算不同
计算p1&&p2时,Java先计算p1,若p1为true再计算p2;若p1为false,则不再计算P2,因此&&又称为条件与运
算符.而&的两个运算对象都要计算,所以,&又称为无条件与运算符.类似的还有 "|| " (条件或运算符,p1 ||
p2,Java先计算p1,若p1为FALSE再计算P2,若P1为TRUE,则不再计算P2)和 "| " (无条件运算符,两边对象
都要计算) .
例如:(a <2)&(b-- <2) 保证(b-- <2)能被计算.这样,无论a是否小于2,变量b都要减1.
要避免使用&和|运算符,它们好处不大.使用&和|运算符会使程序可读性降低,并且可能导致错误,比如:(x!=0)
&(100/x)当x为0时产生运行错误,而(x!=0)&&(100/x)没问题
如还有其他区别或以上分析有错误 欢迎指正
相关文章推荐
- java.lang.Thread.sleep()方法和java.lang.Object.wait()方法的区别--有道笔记整理
- Java基础——&和&&的区别
- java中&和&&的区别
- java &与&& |与||的区别
- java 中,"=="和 "equals"的区别
- Java "equals"和"=="的区别
- 黑马程序员_java学习笔记之(StringBuider&Stringbuffer)区别
- 【Java基础知识】&&与&以及 ||与|的区别
- Java面试题第一天(一个源文件多个类,&和&&的区别)
- java中&和&&的区别
- 【Java面试题】55 说说&和&&的区别。
- Java中&与&&;|与||的区别
- Java中equals与"=="的使用区别
- JAVA中Get和Post请求的区别收集整理
- Java之&&、||与&、|的区别
- java中的|与||,&与&&的区别,与、或,非、异或、位运算
- JAVA中Double与double(Integer&int)之间的区别
- java基础之& 和 && 的区别
- 过来人的Java编程经验汇总2-整理&重制
- java的&与&&和|与||的区别