相同之处:
1.在作为逻辑运算符的时候最终体现的效果是一致的,都表示逻辑运算符and,当两边的表达式都为true的时候,整个运算结果才为true,否则为false。
不同之处:
1.&&更高效,我们称其为“短路与”,因为在进行逻辑运算时,如果左边不成立其不会再判断右边,节约了时间。
ps:如果左侧的变量值在右侧有一定出错风险而经&&及时终止将会避免一些不必要的麻烦;例如左侧判断字符串是否为null,右侧调用了该对象的方法(如equals方法),则可避免为此产生的空指针异常。
2.单&可以进行位运算,当其左右不是布尔值时,&代表的“与”运算符,进行二进制的位运算,但是&&跟这没关系,也就没有此功能。