欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java 中 == 和equery的區別

阮建安1年前9瀏覽0評論

在Java編程中,我們經常會使用到兩個運算符:==和equals。這兩個運算符都可以用來比較兩個對象是否相等。但是它們之間有很大的區別。

首先,==運算符比較的是兩個對象的引用地址是否相同。如果兩個對象的引用地址相同,那么它們就是同一個對象;否則就是不同的對象。

String str1 = new String("hello");
String str2 = new String("hello");
System.out.println(str1 == str2);//false

上面的代碼中,str1和str2雖然都是"hello"字符串,但是它們的引用地址不同,所以返回false。

與之相反,equals方法比較的是兩個對象的內容是否相同。如果兩個對象的內容相同,那么它們就是相等的;否則就是不相等的。

String str1 = new String("hello");
String str2 = new String("hello");
System.out.println(str1.equals(str2));//true

上面的代碼中,str1和str2的內容都是"hello"字符串,所以返回true。

需要注意的是,如果沒有重寫equals方法,那么默認使用的是Object類的equals方法,這個方法也是比較的對象的引用地址。

String str1 = new String("hello");
String str2 = new String("hello");
System.out.println(str1.equals(str2));//true
System.out.println(str1.hashCode());//93616297
System.out.println(str2.hashCode());//93616297

上面的代碼中,雖然str1和str2是不同的對象,但是它們的內容相同,所以返回true。同時,因為String類重寫了hashCode方法,所以str1和str2的hashCode值也相同。

綜上所述,==運算符比較的是兩個對象的引用地址,而equals方法比較的是兩個對象的內容。