1、对于 == 如果作用于基本数据类型,则直接比较存储的值是否相等。如果作用于引用类型的变量,则比较所指向的对象的地址。(关于String的知识点本篇暂时不讲,不会的朋友请查阅其他资料)
public class bookAboutEquals {
public static void main(String[] args) {
int a = 1;
int b = 1;
int c = 2;
String str1 = "aa";
String str2 = "aa";
String str3 = "bb";
String nstr1 = new String("aa");
String nstr2 = new String("aa");
String nstr3 = new String("bb");
System.out.println(a == b); //true
System.out.println(str1 == str2); //true
System.out.println(str1 == str3); //false
System.out.println(nstr1 == nstr2); //false
}
}
2、equals方法是基类Object中的方法,因此对于所有的继承于Object的类都会有该方法。在Object类中,equals方法是用来比较两个对象的引用是否相等,即是否指向同一个对象。
--------引用类型中:“==”判断的是两个是是否住同一个地址,而equals判断一个地址住的是不是同一个人。
public class bookAboutEquals {
public static void main(String[] args) {
int a = 1;
int b = 1;
int c = 2;
String str1 = "aa";
String str2 = "aa";
String str3 = "bb";
String nstr1 = new String("aa");
String nstr2 = new String("aa");
String nstr3 = new String("bb");
System.out.println(str1.equals(str2)); //true
System.out.println(str1.equals(str3)); //false
System.out.println(nstr1.equals(nstr2));//true
System.out.println(nstr1.equals(nstr3));//false
}
}
注:这里的equals是指String中已经重写过的equals方法