&和&&的区别?

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

跟短路与的差别是非常巨大的虽然二者都要求运算符左右两端的布尔值都是 

true 整个表达式的值才是 true。&&之所以称为短路运算是因为如果&&左边的 

表达式的值是 false,右边的表达式会被直接短路掉不会进行运算很多时候我 

们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是 null 而且不 

是空字符串应当写为:username != null &&!username.equals(“”),二者 

的顺序不能交换更不能用&运算符因为第一个条件如果不成立根本不能进行 

字符串的 equals 比较否则会产生 NullPointerException 异常注意逻辑或 

运算符(|)和短路或运算符(||)的差别也是如此

补充如果你熟悉 JavaScript,那你可能更能感受到短路运算的强大想成为 

JavaScript 的高手就先从玩转短路运算开始吧

原文地址:https://www.cnblogs.com/programb/p/13019244.html