【说明】 这是一个老生常谈的问题,算是java基础知识,暂且当作复习一遍。新手参考,老鸟跳过!
一、 ==
如果两边指向的是同一对象则返回true,否则返回false。何为"同一对象"?,JAVA中是指地址相同的对象。当然,地址相同的对象应该就是同一个对象了。需要注意的是String对象。在JAVA中为了性能的考虑,编译时就常量字符串会放入常量池中。所以如果在编译阶段,编译器能够判断两个字符串是一样的,则只会在常量池中生成一个String对象!
二、equals()
如果两个对象的类型相同,且内容值相同,则返回true,否则返回false。对于自定义类型,需要根据相应类中的equals()方法来判定,若没有提供equals方法,则调用默认的Object的equals方法。注意,Object的equals()方法比较的方式和"=="一样,是根据地址来判断了。
三、实例