equals方法和 的比較

2021-08-10 01:21:25 字數 875 閱讀 9457

我想應該有和我遇到一樣問題的,equals()和==到底什麼區別呢?

①繼承object中的equals()

public boolean equals(object obj)

return ( this == obj ) ;

② string 型別重新object中的equals()

public boolean equals(object anobject)

//先判斷引用位址,如果位址一致就直接返回true了

if (this ==  anobject)

return true;

}//位址不一致時,再比較字串中的每個字元,若全一樣,仍返回true

if (abobject instanceof  string)

string anotherstring = (string ) anobject;

int n =value.length;

if  ( n == anotherstring.value.length)

char v1= value;

char v2= anotherstring.value;

int i=0;

while ( n--!=0)

if (v1 [i] !=v2 [i])

return false;

i++;

return true;

return false;

通過以上**可以清楚的看出:繼承objects的equals()方法時,==和equals()沒區別;而對應string型別,則在使用equals()方法時,先比較引用位址,位址不一致的時候還需要比較具體的字串值,如果字串一致,也會返回true。

//尋夢,撐一支長篙,向青草青處漫溯

和equals的比較

基本的資料型別都放在stack 棧 中 引用型別變數放在stack 棧 中,真正的內容放在heap 堆 中。堆 首先堆是動態分配的,jvm並不會自動釋放這部分記憶體。只用等待系統的gc來進行記憶體 棧 是在類載入中有系統靜態分配的,而且分配時按照記憶體的高低位址分配。這部分記憶體系統會自動進行釋放。...

equals和 的比較

基本資料型別判斷的是基本資料型別的值 兩端資料型別不同,也可以返回true int 66 char b 比較的是常量區的值 引用資料型別比較的是位址值 public class main public static void main string args string類中equals原始碼 pu...

java中equals方法和「 」的比較

有兩種用法說明 1 對於字串變數來說,使用 和 equals 方法比較字串時,其比較方法不同。比較兩個變數本身的值,即兩個物件在記憶體中的首位址。equals 比較字串中所包含的內容是否相同。比如 string s1,s2,s3 abc s4 abc s1 new string abc s2 new...