java比較兩個對象的內(nèi)容 如何比較java對象是同一個對象?
如何比較java對象是同一個對象?Java在基本數(shù)據(jù)類型中判斷是否相等,直接用“==”就行,等于返回true,否則返回false。但是Java中引用類型的對象是不同的。假設(shè)有兩個參照對象obb1,ob
如何比較java對象是同一個對象?
Java在基本數(shù)據(jù)類型中判斷是否相等,直接用“==”就行,等于返回true,否則返回false。
但是Java中引用類型的對象是不同的。假設(shè)有兩個參照對象obb1,obb2,obb1==obb2,判斷兩個參照變量obb1和obb2是否相等,即它們所指向的對象是否是同一個對象。這意味著只有當(dāng)兩個變量的內(nèi)存地址相等時,才能返回true。每個對象都有自己的內(nèi)存,因此它必須指向同一個對象才能返回true。
如果要自定義兩個對象是否相等的規(guī)則,必須重寫對象的類定義中的equals()方法。如果不重寫equals()方法,則默認(rèn)比較方法是比較兩個對象是否為同一對象。在javaapi中,有些類重寫equals()方法。它們的比較規(guī)則是:當(dāng)且僅當(dāng)equals方法參數(shù)不為null且兩個變量的類型和內(nèi)容相同時,比較結(jié)果為真。
重寫equals()方法的步驟通常如下:
1。先用“==”判斷是否相等。
2. 判斷equals()方法的參數(shù)是否為空。如果為空,則返回false。因為當(dāng)前對象不能為null,如果為null,則不能調(diào)用其equals()方法,否則將被拒絕java.lang.NullPointerException異常不正常。
3. 如果參數(shù)不為null,則如果兩個對象的運行時類(通過getclass()獲得)不相等,則返回false。否則,繼續(xù)判斷。
4. 確定班級成員是否平等。