首頁  >  文章  >  Java  >  java中==與equals的比較操作分析

java中==與equals的比較操作分析

王林
王林轉載
2020-11-17 15:11:332334瀏覽

java中==與equals的比較操作分析

比較分析:

(學習影片分享:java課程

==:它的作用是判斷兩個物件的位址是不是相等。即: 判斷兩個物件是不是同一個物件。 (基本資料型別比較的是值,引用資料型別==比較的是記憶體位址)。

equals() : 它的作用也是判斷兩個物件是否相等。但它一般有兩種使用情況,如下:

情況1:類別沒有覆寫equals() 方法。則透過equals() 比較該類別的兩個物件時,等價於透過==比較這兩個物件。

情況2:類別覆寫了equals() 方法。一般,我們都覆寫equals() 方法來兩個物件的內容相等;若它們的內容相等,則傳回true (即,認為這兩個物件相等)。

程式碼範例:

public class test1 {
	public static void main(String[] args) {
		String a = new String("ab"); // a 为一个引用
		String b = new String("ab"); // b 为另一个引用,对象的内容一样
		String aa = "ab"; // 放在常量池中
		String bb = "ab"; // 从常量池中查找
		if (aa == bb) // true
		System.out.println("aa==bb");
		if (a == b) // false,非同一对象
		System.out.println("a==b");
		if (a.equals(b)) // true
		System.out.println("aEQb");
		if (42 == 42.0) // true
		System.out.println("true");
	}
}

String 中的equals 方法是重寫過的,因為object 的equals 方法是比較的物件的記憶體位址,而String 的equals 方法比較的是對象的值。當建立String 類型的物件時,虛擬機會在常數池中尋找有沒有已經存在的值和要建立的值相同的對象,如果有就把它賦給目前參考。如果沒有就在常數池中重新建立一個String 物件。

相關推薦:java入門

以上是java中==與equals的比較操作分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除