String aa = request.getParameter("aa");
aa==null和aa.equals("")的区别是什么?if判断时有什么先后顺序吗?要是有请说出原因,谢谢!

解决方案 »

  1.   

    aa==null表示对象为空,也就是根本没有"aa"这个参数。
    aa.equals("")是有这个对象的,只是这个字符串的长度为0.对于一个null的对象,调用任何方法都将抛出NullPointerException,equals方法也不例外,所以你必须先判断是否为空,然后才能判断是否为空串
      

  2.   

    我觉得这样:
    "".equals(aa)
    就可以把这两种情况都判断了。
      

  3.   

    如果:
    String a;
    String b = new String();那么(a == null) = true
    (b.equals("")) = true
      

  4.   

    ==判断引用的地址
    equal判断是否为同一个对象
      

  5.   

    aa==null||aa.length()==0这也是一法.aa==null为真说明aa没有指向任何字符串。
    aa.length()==0或者aa.equals("")说为真aa指向的字符串长度为0.aa==null||aa.equals("")这样的表达式由于逻辑表达式的短路,所以是成立的,不用担心抛出空指针异常。
      

  6.   


    试了一下,行不通啊,""与null不相等。