討論區快速選單
知識庫快速選單
討論區最近新進100則主題 政府補助!學嵌入式+物聯網 沒有人比Cloudera更了解大數據
[ 回上頁 ] [ 討論區發言規則 ]
equals比對問題
更改我的閱讀文章字型大小
作者 : creamocean(藍海)
[ 貼文 25 | 人氣 0 | 評價 20 | 評價/貼文 0.8 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/1/14 下午 02:47:30
public class test {

public static void main(String[] args)
{

char s1[] = {0x00, 0x00};
char s2[] = {0x00, 0x00};

System.out.println(s1==s2);
System.out.println(s1.equals(s2));
System.out.println(s2.equals(s1));
}

}

為什麼會false呢?
作者 : redrock99(阿呆紅) Visual Basic優秀好手貼文超過200則
[ 貼文 379 | 人氣 2550 | 評價 3040 | 評價/貼文 8.02 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/1/14 下午 05:10:47
在 array 的情況下, 只有 s1==s2 時, s1.equals(s2) 才會回 true.
可以用 Arrays.equals(s1, s2) 來判斷內容是否相同.
作者 : creamocean(藍海)
[ 貼文 25 | 人氣 0 | 評價 20 | 評價/貼文 0.8 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/1/15 下午 02:41:38

>在 array 的情況下, 只有 s1==s2 時, s1.equals(s2) 才會回 true.
>可以用 Arrays.equals(s1, s2) 來判斷內容是否相同.
>
用Arrays.equals可以回傳true了
但是s1==s1和s1.equals(s2)並不相等
這是為什麼呢?
作者 : redrock99(阿呆紅) Visual Basic優秀好手貼文超過200則
[ 貼文 379 | 人氣 2550 | 評價 3040 | 評價/貼文 8.02 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人creamocean註記此篇回應為很有道理 2010/1/15 下午 05:31:09
物件變數其實是指標, 變數的內容是存放該物件的記憶体位址,
s1 與 s2 指到兩個不同的物件, 所以 s1 == s2 當然是回 false.
而 Object.equals() 的 source code 如下:
public boolean equals(Object obj) {
  return (this == obj);
}

結果跟用 s1 == s2 是一樣的.
 板主 : 徵求中
 > J2SE(Java2 Standard Edition) - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - J2SE(Java2 Standard Edition) - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
J2SE(Java2 Standard Edition)
1 20 
2 阿呆紅 10 
J2SE(Java2 Standard Edition)
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2018 程式設計俱樂部 http://www.programmer-club.com.tw/
0.046875