一直搞不懂null!=a和a!=null有什么不一样,a==null和null==a?

解决方案 »

  1.   

    Boolean a = true;
    少写了一个 =
    情况 1:
    if(a = null){ //编译不报错  }
    情况 2:
    if(null = a){ //编译器报错}
      

  2.   


    null = a 这是赋值
      

  3.   

    null != a; null == a;
    可以避免著名的java.lang.NullPointerException
      

  4.   

     String str=null;
     str.equals("a");
    执行结果
    Exception in thread "main" java.lang.NullPointerException
    at test.Test1.main(Test1.java:54)String 的equals()方法的源码如下:
      public boolean equals(Object anObject) {
    if (this == anObject) {
        return true;
    }因此在比较时变量不要放在前面最好把常量放在前面
      

  5.   

    我的理解也是一样的,又不是""值判断.通常我喜欢写a!=null 和"".eques(a),后者是可以避免一些空指针错