JavaEE
当前位置:首页 > 学习资料 > JavaEE >

常见Java面试题之&和&&的区别?

更新时间:2020年06月16日   作者:spoto
&和&&有什么区别?这是最基本的问题和知识点,也是最经常遇到的一个基础Java面试题,不管原来知道不知道,现在告诉你,赶紧记牢面试无忧!

常见Java面试题之&和&&的区别?

&和&&区别分析

&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是null而且不是空字符串,应当写为:username != null &&!username.equals(""),二者的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的equals比较,否则会产生NullPointerException异常。注意:逻辑或运算符(|)短路或运算符(||)的差别也是如此。

本题涉及java知识点分析

逻辑与运算符&

&,双目运算符:将两个表达式的值按二进制位展开,对应的位(bit)按值进行“与”运算,结果保留在该位上。
比如170&204
对应二进制就是
10101010B & 11001100B =10001000B…
170&204=136…
该位只要有一个值为0结果为0,否则结果为1。
如果两数位数不同,则较短数高位补零,再运算,比如char a=100;int b=260;

短路与运算符&&

&&:双目运算符,计算两个表达式同时成立的“真值”(同时成立真值为真否则为假)
逻辑真值有两种,1为真,0为假,但在运算时用非零表示真,0表示假。
即:数值->逻辑真值--非0为真,0为假/逻辑真值->数值--真为1,假为0。
例如:char a=1,b=0,c=-1;那么a真b假c真。a&&b和c&&b为假值为0,a&&c为真值为1

以上是思博网络为广大奔走在面试以及学习阶段的java同行整理的关于Java &和&&可能遇到的面试问题以及重要知识点,可能存在不足或者需要补充,您有什么观点和认识,欢迎指正补充,大家一起快乐学Java,高薪在就业!
如果遇到什么疑问或者困惑,可以联系我们,乐于与您分享讨论!
免费试听
思博SPOTO在线咨询

相关资讯

7天无条件退款
24小时实验室开放
全程跟踪服务
无条件免费重读