String a=null; if(a==null) System.out.println("YY"); if(null==a) System.out.println("yy"); if("aa".equals(a)) System.out.println("XX"); if(a.equals("a")) System.out.println("xx"); null==s 这种形式会好一些。因为在C和C++时代,逻辑符号(==)经常会弄错为(=)。这样if里面的值衡为true,并且变量会被复制。如果是null == s这种情况则不会发生。因为null是常量,不能被赋值 str==null 和nul==str是一样的,但是如果是字符串的话就应该使用"xx".equals(str) 比 str.equals("xx")严谨点,应该如果str=null的话,str.equals("xx")会报错而"xx".equals(str)正确。 //源代码片段来自云代码http://yuncode.net