我想每个人在面试的时候都会遇到问运算符的问题吧,如果你没有真正的理解他们的意思,可以参考一下下面的代码与解答,举例&与&&的区别于联系,本人通过代码演示和文字描述说一说&与&&的区别于联系。
废话少说,具体代码如下:
package com.yoodb; /** * 素文宅 * @author www.yoodb.com */ public class Test { public static void main(String[] args) { boolean a = false; boolean b = true; if(a && b){ //do something System.out.println("欢迎收藏www.yoodb.com!"); } if(a & b){ //do something System.out.println("欢迎收藏www.yoodb.com!"); } } }
对于&&运算符来说:
if(a && b){ //do something }
&&条件a等于false时不继续执行,等于true时继续执行,具有短路功能,想看效果的话可以通过Dubug模式,Debug模式时会发现只执行到“a &&”步,不继续往下执行了
但是对于&运算符来说:
if(a && b){ //do something }
&条件不管是a与b结果如何程序都会继续执行下去,想看效果的话可以通过Dubug模式,Debug模式时会发现只执行到“a &&”步,还会继续往下执行
总结:
&和&&都可以作为逻辑运算符的,其逻辑运算规则是相同的,如:
a:true b:true a&b:true a&&b:true a:true b:false a&b:false a&&b:false a:false b:true a&b:false a&&b:false a:false b:false a&b:false a&&b:false
&&具有短路功能,第一个操作符为false就不会再去计算第二个操作符;&作为逻辑运算符时,即使第一个操作符是false,那么它仍然会计算第二个操作符。