·比较运算符 == 与 String类的equals方法 和 Object类的 equals方法
① ==与Object的equals是一样的,实际上Object类的equals使用的就是==去比较调用方法的对象与传入方法对象的。对于基本类型数据如果2个量值相等则为true,如果是引用类型则指向同一个对象才相等。
② String的equals 是比较2个字符串只要一样即相等,不管是不是指向同一个对象。
例子:==与equals
public class EqualTest
{
public static void main(String[] args)
{
int i = 5;
float f = 5.0f;
System.out.println(i == f); //==比较基本类型,结果为true
String s1 = new String("hello");
String s2 = new String("hello");
System.out.println(s1 == s2); //==比较引用类型,结果为fals
System.out.println(s1.equals(s2)); //String的equls比较引用类型,结果为true
}
}
Object类的equals代码:
路径:YouInstallJDK/src/java/lang/Object.java
public boolean equals(Object obj) {
return (this == obj);
}
this == obj 就是调用这个方法的“对象” == 传入这个方法的对象。