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