1、&和&&都可以表示逻辑与(and),多个表达式进行逻辑与操作时,只有都为true时,结果才为true。
?
2、&&具有短路功能,即如果多个表达式的某个表达式为false,则不会继续判断后续的表达式,整个逻辑与的结果即为false。
?
3、&可以进行位运算,如果表达式两边为数值时,则进行按位与操作。
?
4、| 和 || 都可以表示逻辑或(or),多个表达式进行逻辑或操作时,只要有一个为ture,则结果才为true。
?
5、|| 具有短路功能,即如果多个表达式的某个表达式为true,则不会继续判断后续的表达式,整个逻辑或的结果即为true。
?
6、| 可以进行位运算,如果表达式两边为数值时,则进行按位或操作。
?
7、测试实例:
class="java" name="code">package com.linwei; public class TestOperator { public static void main(String[] args) { int x=1; int y=2; //测试1 System.out.println("1、x&y:"+(x&y)); //进行的是按位与操作(0001&0010=0000-->0) //测试2 if((x==2) && (++y)==3){ // 短路与,y不会自增 System.out.println("2、&&:x="+x+", y=" +y); }else{ System.out.println("3、&&:x="+x+", y=" +y); } //测试3 if((x==2) & (++y)==3){// y会自增 System.out.println("4、&:x="+x+", y=" +y); }else{ System.out.println("5、&:x="+x+", y=" +y); } int m=3; int n=4; //测试4 System.out.println("6、m|n:"+(m|n));//进行的是按位或操作(0011|0100=0111-->7) //测试5 if((m==3) || (++n)==3){ // 短路或,n不会自增 System.out.println("7、||:m="+m+", n=" +n); }else{ System.out.println("8、||:m="+n+", m=" +n); } //测试6 if((m==3) | (++n)==3){ // n会自增 System.out.println("9、|:m="+m+", n=" +n); }else{ System.out.println("10、|:m="+n+", m=" +n); } } } 执行结果: 1、x&y:0 3、&&:x=1, y=2 5、&:x=1, y=3 6、m|n:7 7、||:m=3, n=4 9、|:m=3, n=5
?