public static void main(String[] ab){ String a = new String("123"); String b = new String("123"); System.out.println(a==b); } //这是因为==比较的是两个引用时是不是指向同一个内存地址,而equeals比较的是字面值。上面的new就产生了两个不同的对象,那么其内存地址肯定也就不同了。 public static void main(String[] ab){ String a = new String("123"); String b = new String("123"); System.out.println(a.equals(b)); }//返回为true