&和&&的区别

简介: &和&&的区别

&运算符有两种用法: (1)按位与; (2)逻辑与。


&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true.


&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是null而且不是空字符串,应当写为

username != null &&!usemame.equal(""),

二者的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的equals比较,否则会产生NullPointerException异常。


注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如此。


目录
相关文章
|
1月前
|
JavaScript 前端开发 索引
for in与for of的区别
for in与for of的区别
55 0
|
3月前
|
安全 数据安全/隐私保护 网络架构
CAPWAP 和 LWAPP 的区别
【8月更文挑战第24天】
93 0
|
5月前
|
索引
for each和for of的区别
for each和for of的区别
|
6月前
|
编译器
self.***和_***的使用和区别
self.***和_***的使用和区别
44 0
|
6月前
a++与++a的区别
a++与++a的区别。
40 4
|
算法 Java Unix
C++基础语言之(二)C和C++的区别
C++基础语言之(二)C和C++的区别
|
6月前
|
Web App开发 安全 应用服务中间件
浅谈C/S vs. B/S的区别
浅谈C/S vs. B/S的区别
195 0
<T>和<?>区别
简要讲述一下<T>和<?>区别,以及<T>的用法
<T>和<?>区别
setBackgroundImage 和 setImage的区别
setBackgroundImage 和 setImage的区别
212 0