区别
-
|| 为逻辑运算符,而 | 为位运算符。
位运算可以进行进行int数的或运算。 例:4|1=5 4写作二进制数 1 0 0 1写作二进制数 0 0 1 做或运算得出 1 0 1 即5
-
|| 只要满足第一个条件,后面的条件就不再判断,而 | 要对所有的条件进行判断。
我们定义一个链表
class ListNode { int val; ListNode next; ListNode(int x) { val = x; } }
ListNode a=null;
写出一个if判断语句,共四种写法
if(a==null|a.next==null)//1 if(a==null||a.next==null)//2 if(a.next==null|a==null)//3 if(a.next==null||a==null)//4
以上四种写法中,1、3、4写法均会抛出NullPointerException异常
1. | 要对所有的条件进行判断,故在a.next == null的判断中抛出异常
2. || 只要满足第一个条件,后面的条件就不再判断,a==null满足,返回true
3. 同1的错误
4. 判断前一个条件,a.next抛出异常以上为||和|的区别和使用,相同&和&&也可以同上思考