多选题:1。 String s=null; 下列哪些代码将抛出NullPointerException()
    a. if((s==null)&(s.length()>0))
    b. if((s==null)&&(s.length()>0))
    c. if((s!=null)|(s.length()==0))
    d. if((s!=null)||(s.length()==0))2. 下面方法不会导致线程中断或停止运行的是:()
    a. seelp();
    b. stop();
    c. yield();
    d. wait();
    e. notify();
    f. notifyAll();3. 声明:String s="example",下面选项正确的是:()
    a. s>>>=3;
    b. s[3]="x";
    c. int i=s.length();
    d. String t="For"+s;
    e. s=s+10;

解决方案 »

  1.   

    1、a,b,d
    2、a,e,f
    3、c,d,e
      

  2.   

    第一题 a.b.c有空指针异常 d没有
      

  3.   

    第一题貌似只有b吧?a和c应该是编译期的错误, 不是run time的错误。d是陷阱, 短路了。
      

  4.   

    第一个题目a b c都有异常
      

  5.   


    public class Tz { public static void main(String[] args) {
    String s = null; // if ((s == null) & (s.length() > 0)) {
    // System.out.println("aaa");
    // }
    // if ((s == null) && (s.length() > 0)) {
    // System.out.println("aaa");
    // }
    // if ((s != null) | (s.length() == 0)) {
    // System.out.println("aaa");
    // }
    // if ((s != null) || (s.length() == 0)) {
    // System.out.println("aaa");
    // }
    }
    }
      

  6.   


    public class Tz2 {
    public static void main(String[] args) {
    String s = "example"; // s >>>= 3;
    // s[3] = "x";
    int i = s.length();
    String t = "For" + s;
    s = s + 10;
    }
    }
      

  7.   

    第一题都有异常
    s == null 是true, s != null 是false
    &和|是非短路的,所以都要判断 所以a和c后面的一定要执行 所以肯定抛异常了b前一个条件是正确的,因为是&& 所以还要判断后面的 也就抛异常了d前一个是错误的,所以后面的也得判断了 也就抛异常了
      

  8.   

    第一个都有
    你可以用debug调试一下就知道拉~  
    自己调试 更能理解清楚 
    还不会忘
      

  9.   

    用&&的话一直找到false才停止,用||的话一直找到true才会停止
      

  10.   

    第一题全选 。。第二题aef。第三题后三个。
      

  11.   

    第一题全选 。。第二题aef。第三题后三个。
      

  12.   

    jiaxy917提供的
    1、a,b,d 
    2、a,e,f 
    3、c,d,e 是正解,都是很基础的题
      

  13.   

    第一题:同意15楼的说法 全选
    第二题:不会
    第三题:c d e
    a.s>>>=3//s是字符串,而>>>=是位移操作符只能作用于整数类型,所以a错
    b.s[3]=x//s是字符串不是数组
    c. int i=s.length(); //String 有length()方法返回字符串长度,所以正确
    d. String t="For"+s; //字符串连接肯定正确,
    e. s=s+10; //同d也是字符串连接,其他类型与字符串用“+”连接时会自动调用该类型的toString方法将其转换成字符串并连接
      

  14.   


    只要明白短路也就明白了& |是位运算符,&& || 是逻辑运算符,用逻辑运算符的话会产生短路现象,而为运算符不会短路。
    所谓短路呢,举个列子你就明白了int i=1;i>0;//truei<0;//falsei<0&&i>0;//因为i<0是false 所以不管后面的i>0是true还是false这个表达式的值都是false,这个时候因为用的是&&(逻辑运算符)就会产生短路,也就是说判断完i<0之后就可以确定这个表达式的值了,所以后面的就不走了,就是不会判断i>0是true还是false了;同样的
    i>0||i<0;这个也是一样因为通过i>0就可以确定这个表达式的值为true了后面的i<0也就不判断了,但是如果你要是用  &  | 的时候就不会这样,它不管如何都要把所有的表达的值都判断完;这也是逻辑运算符与位运算符最大的区别