短路与非短路运算符

来源:互联网 发布:海岛奇兵钻石辅助软件 编辑:程序博客网 时间:2024/05/16 14:28
根据下面的代码,
String s = null;

会抛出NullPointerException异常的有()。

if( (s!=null) & (s.length()>0) )
if( (s!=null) && (s.length()>0) )
if( (s==null) | (s.length()==0) )
if( (s==null) || (s.length()==0) )
出现异常主要是因为执行了s.length()这句话,String s=null;没有给s开辟任何空间,当执行length()方法时候,因为没有具体指向的内存空间,所以报出NullPointerException没有指向的错误。
&(非短路逻辑运算符): 两个都得执行,执行到s.length()自然就报错了。
&&(短路逻辑运算符): S!=null  结果为false 整体就为false ,&& 后面就不会执行;下面的同理。

0 0