我想知道这两个有啥区别,
为什么
当我 a=null 传进入的时候 if(a==0 || a==null)会报错空指针,
而换成 if(a==null || a==0)就没报错了
我想知道这两个有啥区别,
为什么
当我 a=null 传进入的时候 if(a==0 || a==null)会报错空指针,
而换成 if(a==null || a==0)就没报错了
因为 ||运算的时候 前面的表达式为true时 就不会再判断后面的表达式。
if(a==null || a==0) 当 a==null为true时 不管后面的结果为什么 ,整个表达式都必定为true,所以编译器进行了优化不会执行a==0这个代码片段。