==是看引用是否相同,而equals你可以参见api中的equals方法是这么写的:
Object 类的 equals 方法实现对象上差别可能性最大的相等关系;即,对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true(x == y 具有值 true)。
貌似跟==差不多,但是如果你的对象是字符串就不一样了,因为String类中重写了equals方法,这个方法的equals就不是看引用了,而是看内容是否相同即:
String a=new String("abc"); String b=new String("abc");
那么a==b将返回false,因为a和b指向不同的对象。
但是他们内容相同,这时候用equals方法比就是true。
楼主跟我一样,刚开始不知道==和equals方法。只要弄明白你创建的对象类型里面有没有复写equals方法,如果复写了就跟==性质不一样了。。。但是==始终是比较引用。。 |