码迷,mamicode.com
首页 > 编程语言 > 详细

3、说说&和&&的区别-Java面试题答案

时间:2019-10-10 11:02:14      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:面试   src   技术   运算   too   stat   的区别   lse   bsp   

共同点:&和&&都可以用作逻辑与(and)运算,当运算符两边都为true时结果才为true,否则为false.

不同点:&&运算符有短路的功能,即当运算符左边的值为false时,右边则不会进行运算,直接跳过.

   A&&B
   A已经是false,就不用判断B是true还是false了,这是短路
   但若A是true,你就必须判断B是真是假了,这就不短路了

           &运算符没有短路功能.但是是可以用作位运算.

 

技术图片
package com.n3;

public class Demo {
public static void main(String[] args) {
System.out.println("true&true="+(true&true));
System.out.println("true&false="+(true&false));
System.out.println("false&false="+(false&false));
System.out.println("----------");
System.out.println("true&&true="+(true&&true));
System.out.println("true&&false="+(true&&false));
System.out.println("false&&false="+(false&&false));
System.out.println("----------");
int i=0;
System.out.println(false&++i==0);

输出结果:

true&true=true
true&false=false
false&false=false
----------
true&&true=true
true&&false=false
false&&false=false
----------
false
1
false
1
----------
false
0
false
1
----------
5&3=19
技术图片

 

 

输出结果:

技术图片
true&true=true
true&false=false
false&false=false
----------
true&&true=true
true&&false=false
false&&false=false
----------
false
1
false
1
----------
false
0
false
1
----------
5&3=19
技术图片

 

 

 


System.out.println(i);
i=0;
System.out.println(true&++i==0);
System.out.println(i);
System.out.println("----------");
i=0;
System.out.println(false&&++i==0);
System.out.println(i);
i=0;
System.out.println(true&&++i==0);
System.out.println(i);
System.out.println("----------");
System.out.println("5&3="+(5&3));
/*
* 5二进制 :0000 0000 0000 0000 0000 0000 0000 0101
* 3二进制 :0000 0000 0000 0000 0000 0000 0000 0011
* 5&3 :0000 0000 0000 0000 0000 0000 0000 0001
* 1:可理解成true
* 0:可理解成false
*/
}
}

3、说说&和&&的区别-Java面试题答案

标签:面试   src   技术   运算   too   stat   的区别   lse   bsp   

原文地址:https://www.cnblogs.com/helenwq/p/11646153.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!