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

java equal和 區別

錢斌斌2年前8瀏覽0評論

Java編程中的equal和==有什么區別呢?很多初學者會對這兩個概念感到困惑。實際上,equal和==有著不同的用途和基礎實現。

相等性判斷在Java中通常使用==和equal方法。==用于比較兩個對象的內存地址是否相同,而equal方法通過比較兩個對象的內容是否相同來判斷它們相等。

public class Person { 
private String name; 
private int age; 
public Person(String name, int age) { 
this.name = name; 
this.age = age; 
} 
public boolean equals(Object obj) { 
if (obj == this) { 
return true; 
} 
if (!(obj instanceof Person)) { 
return false; 
} 
Person person = (Person) obj; 
return Objects.equals(name, person.name) && age == person.age; 
} 
}
Person person1 = new Person("Tom", 18); 
Person person2 = new Person("Tom", 18); 
System.out.println(person1 == person2); // false 
System.out.println(person1.equals(person2)); // true

在上面的例子中,我們通過比較兩個Person對象的屬性是否相等來判斷它們是否相等。如果兩個對象的name和age屬性都相等,則equal方法返回true,否則返回false。

需要注意的是,如果沒有重寫equals方法,則比較的是兩個對象的內存地址是否相等。因此,即使兩個對象的屬性內容相同,但如果它們的對象引用地址不同,那么==比較會返回false。

總之,當我們需要比較兩個對象的內容是否相等時,應該使用equal方法。而如果需要比較對象的內存地址是否相同,應該使用==符號。