1. 程式人生 > >java類中重寫equals方法

java類中重寫equals方法

                                           java中的equals方法

java中的equals常常用來對字串相等進行判斷。那麼equals方法和==有什麼區別呢?

先來看下程式碼:

package LaboratoryReport;

public class TestEquals {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		String a="tt";
		String b="tt";
		System.out.println(a==b);				//true
		System.out.println(a.equals(b));		//true
		
		String a1=new String("tt");
		String a2=new String("tt");
		System.out.println(a1==a2);				//false
		System.out.println(a1.equals(a2));		//true
		
		String b1=new String("tt");
		String b2="tt";
		System.out.println(b1==b2);				//false
		System.out.println(b1.equals(b2));		//true
		
	}

}

兩個==判斷:

new之後的string兩個值相等的字串是不相等的。因為new的物件指向堆區的tt。另一個指向堆區的另一個tt。

而沒有new的string物件是相等的。因為他們都指向方法區常量池的tt。

而一個new的物件的一個沒new的物件更不會相等。

equals判斷:

string類的對equals方法進行重寫。只要值相等,就會返回true;

擴充套件:有時候我們需要對類的equals方法重寫。比如我們只根據學生類的學號判斷是否是一個人,這時候就需要重寫equals方

法。其實本來的equals是需要對存的地址進行判斷的。只是java中的string,integer類等對equals進行了重寫。這樣只要數值相等

就會相等。