假设有定义:String S=null;,则下列选项中,能引发异常的是、()

假设有定义:String S=null;,则下列选项中,能引发异常的是()


A、Ⅰ
B、Ⅰ和Ⅲ
C、Ⅱ和Ⅳ
D、Ⅲ
【正确答案】:B
【题目解析】:&&:逻辑与,要考虑“短路”问题,即如果左边为false,则右边不执行。
&:按位与,不存“短路”问题,即不管左边的值true 还是 false,都要执行右边。
选项I、III是不存在“短路”问题,所以右边都要执行,所以必然执行s.length(),而s为null,所以必然引发异常。
II:s!=null 为false,所以与运算的结果必然为false,所以右边不用执行。
IV:s==null为true,所以或运算必然为true,所以右边不用执行。