&和&&的区别

简介: &和&&的区别

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


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


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

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

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


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


目录
相关文章
|
2月前
|
存储 C语言 C++
1. 认识C++和C的区别
1. 认识C++和C的区别
46 0
|
1月前
知识和智慧的联系和区别
知识和智慧的联系和区别
20 0
|
4月前
|
SQL 安全 Java
myabtis中#{} 和 ${} 的区别是什么
myabtis中#{} 和 ${} 的区别是什么
|
5月前
|
数据可视化 数据挖掘
jupternotebook和jupterLab有什么区别?
jupternotebook和jupterLab有什么区别?
87 0
|
9月前
|
安全 C#
C#委托事件的区别
C#委托事件的区别
写出 && 和 & 的区别。
写出 && 和 & 的区别。
72 0
<T>和<?>区别
简要讲述一下<T>和<?>区别,以及<T>的用法
<T>和<?>区别
|
新零售 网络协议 网络安全
常用的高防有哪几类?主要的区别是什么?
有一些用户受到DDOS攻击的时候,不知道自己该选择什么样的高防来防御攻击,墨者安全今天主要讲下常用的高防有哪几类?以及主要的区别?高防主要分为HTTPS高防、TCP高防、CDN高防、香港高防、海外高防。
|
容器 数据格式 XML
getMeasuredWidth和getWidth的区别
View的getWidth()和getMeasuredWidth()有什么区别吗? View的高宽是由View本身和Parent容器共同决定的。getMeasuredWidth()和getWidth()分别对应于视图绘制的measure和layout阶段。
1479 0
|
Web App开发 安全
C/S 与 B/S 的区别
1.硬件环境不同:   C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门server提供连接和数据交换服务.   B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备.
1093 0