&和&&的区别(按位与、逻辑与)

本文探讨了&&运算符在编程中的短路特性,重点在于其在用户登录验证中的正确使用,以及与逻辑与的区别。通过实例说明了如何避免因误用而引发的NullPointerException。同时,讲解了逻辑或运算符|和短路或运算符|的区别。
摘要由CSDN通过智能技术生成

&运算符有两种用法: (1)按位与; (2)逻辑与。
&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是
true整个表达式的值才是true。
&&之所以称为短路运算是因为,如果&&左边的表达式的值是false ,右边的表达式会被直接短路掉,不会进行运算。

很多时候我们可能都需要用&&而不是& ,例如在验证用户登录时判定用户名不是null而且不是空字符串,应当写为usermame != null &&:!username.equals(") ,二者的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的equals比较,否则会产生NullPointerException异常。注意:逻辑或运算符(|)和短路或运算符( |I )的差别也是如此。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值