&&与&:
1.都可用作逻辑与运算符,当各表达式结果都为true时,运算结果才为true。
2.&&在开发过程中比较常用,因为&&具有短路功能,只要第一个表达式是false,后边的表达式就不会判断。
而&对所有的条件都要判断。
例如,在if(str != null && !str.equals(""))表达式中,当str == null时,后边的表达式就不会执行;
但是在if(str != null & !str.equals(""))中,当str == null时,程序会报空指针异常,这是因为&不具有
短路功能。
3.&也是为运算符,即按位与运算符。
程序如下:
图1.
图2.
图3
图4.
||与|也是同理,即作为逻辑或运算符时,当第一个表达式为true时,对于||来说后边的表达式就不再执行,
但对于|后边的表达式还会继续执行。||有短路动能,比较常用。
|也可作为按位或运算符。