1、&和&&都可以表示逻辑与(and),多个表达式进行逻辑与操作时,只有都为true时,结果才为true。
2、&&具有短路功能,即如果多个表达式的某个表达式为false,则不会继续判断后续的表达式,整个逻辑与的结果即为false。
3、&可以进行位运算,如果表达式两边为数值时,则进行按位与操作。
4、| 和 || 都可以表示逻辑或(or),多个表达式进行逻辑或操作时,只要有一个为ture,则结果才为true。
5、|| 具有短路功能,即如果多个表达式的某个表达式为true,则不会继续判断后续的表达式,整个逻辑或的结果即为true。
6、| 可以进行位运算,如果表达式两边为数值时,则进行按位或操作。
7、测试实例:
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
相关推荐
主要介绍了Java中&&与&,||与|的区别的相关资料,需要的朋友可以参考下
java中的&&与&两者的区别
主要介绍了Java语言中&&与& ||与|的区别是什么的相关资料,需要的朋友可以参考下
java中存在着与(&),短路与(&&),或(|)短路或(||)这些操作符: &&和&都是表示与,区别是&&只要满足第一个条件,后面条件就不用再做判断了。而&要对所有的条件都进行判断之后再处理。 ||和| 同上,都表示...
本文主要介绍了java中&与&&的区别,具有很好的参考价值。下面跟着小编一起来看下吧
主要介绍了java中&和&&的区别,在java中比较常见的运算符:&&(短路与)、&、||(短路或)、|,需要的朋友可以参考下
区别Java中堆与栈区别Java中堆与栈区别Java中堆与栈区别Java中堆与栈区别Java中堆与栈区别Java中堆与栈区别Java中堆与栈区别Java中堆与栈
主要介绍了java &与&&的区别的相关资料,并附简单实例,帮助大家学习理解这部分知识,需要的朋友可以参考下
java中this&super的区别
Java中this与super的区别 this&super; 什么是this,this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。 Java关键字this只能用于方法的方法体内。当一个对象创建后, Java虚拟机(JVM)就...
能够加强对java中equals与==区别的理解。
JAVA与C++的区别JAVA与C++的区别JAVA与C++的区别JAVA与C++的区别JAVA与C++的区别
在Java语言中,abstract class和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,...
mysql-connector-java5.1.38&8.0.11两个jar包,5.1.38是以前比较流行的,8.0.11是最新的,看个人喜好,喜欢使用哪个就使用哪个
重载与重写的区别,详细描述了java中重载与重写的区别。
java频道\java io 与java nio区别.txt
重点讲述Java语言中容易混淆的char与byte的联系与区别
Java中的StringBuffer和StringBuilder类是用于处理字符串的可变对象; 它们与String类类似,但是不同之处在于,StringBuffer和StringBuilder可以修改字符串内容,而String对象是不可变的; StringBuffer和...
在Java语言中,abstract class 和interface 是支持抽象类定义的两种机制区别
Java中的基本类型和引用类型变量的区别