我们都知道java中&代表与运算, (逻辑运算a & 逻辑运算b)中, 只有a和b都为true, 结果才为true, 否则结果为false.
||代表或运算, a或b任意一个为true, 结果为true, 两个全为false结果才为false.
在使用这两个运算符时要注意其短路机制.
与运算中, (逻辑运算a & 逻辑运算b), 如果a为false, 则不会判断b的真假, 直接返回false.
或运算中, (逻辑运算a & 逻辑运算b), 如果a为true, 则不会判断b的真假, 直接返回true.
所以在写代码过程中要注意a和b的先后顺序, 例如链表中,
if( (head==null) || (head.next==null)){
&^*%$#;
}
如果把两个判断语句的先后顺序颠倒, 可能会出现指向空指针的错误.