== 和equals() 的區別

  ==是判斷兩個變量或實例是不是指向同一個內存空間,用來比較對象引用(地址)。
  equals是判斷兩個變量或實例所指向的內存空間的值是不是相同,比較對象存儲內容(值)  
   
  例如:  
  String   str1   =   new   String("abc");  
  String   str2   =   new   String("abc");  
   
  str1   ==   str2       false  
  比較引用地址。  
  str1.equals(str2)     true.  
  比較字符串內容。  
   
  String   str1   =   "abc";  
  String   str2   =   "abc";  
   
  str1   ==   str2     true  
  str1.equals(str2)     true  
  這個結果是字符串池的原因,和數據庫連接池類似。

 

  不要使用==運算符來檢測兩個字符串是否相等!它只是測定兩個串是否存儲在同一個位置。當然,如果串是在同一個位置,那麼它們必定相等。但是確實有可能吧串的多個拷貝存放在不同的地方。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章