色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java ==和equals區別

林玟書1年前8瀏覽0評論

在Java程序中,我們經常使用"=="和"equals"兩個運算符來比較兩個對象是否相等。兩者看起來很相似,但實際上有著本質的區別。

public class Person {
private int age;
private String name;
public Person(int age, String name) {
this.age = age;
this.name = name;
}
public boolean equals(Object obj) {
if(this == obj) {
return true;
}
if(!(obj instanceof Person)) {
return false;
}
Person other = (Person) obj;
return age == other.age && name.equals(other.name);
}
}
public class Main {
public static void main(String[] args) {
Person p1 = new Person(18, "Tom");
Person p2 = new Person(18, "Tom");
System.out.println(p1 == p2); // false
System.out.println(p1.equals(p2)); // true
}
}

"=="運算符比較的是對象的引用地址是否相同,即是否指向同一個對象。例如上面的代碼中,p1和p2雖然屬性相同,但它們是兩個不同的對象,所以"=="運算符比較結果是false。

而"equals"方法比較的是對象的內容是否相等,即屬性是否相同。上面的代碼中,Person類重寫了"equals"方法,比較的是對象的屬性age和name是否相等。所以,p1.equals(p2)返回true。

總結:

"=="比較對象的引用地址,而equals方法比較對象的內容。