equals與== 的區別 及 String,StringBuffer,StringBuilder的區別

一:“equals”和“==”的區別

例子:
String s1 = "aaa";
String s2 = "aaa";
String s3 = New String("aaa");

判斷
s1.equals(s2)
s1 == s2
s1.equals(s3)
s1 == s3

結果
true
true
true
false

總結:
“equals”比較的是兩個獨立對象的內容是否相等。
 它將繼承Object類的equals方法,Object類的equals方法的實現代碼如下:
 boolean equals(Object o){
return this==o;
 }
  “==”  比較的是兩個對象(地址)的引用是否相同。
 專門用來比較兩個變量的值是否相等,也就是用於比較變量所對應的內存中所存儲的數值是否相同,
 要比較兩個基本類型的數據或兩個引用變量是否相當,只能用== 。


所以  字符串的比較基本都是使用equals方法








二:StringBuffer與StringBuilder


它們都是字符串變量,都是可改變對象,對字符串操作實際上是對對象進行操作,
與String進行創建字符串不一樣。
StringBuffer是線程安全的;StringBuilder是非線程安全的


執行速度:StringBuilder > StringBuffer
String與它們的區別(怎麼用?)
        1.如果要操作少量的數據用 = String
    2.單線程操作字符串緩衝區 下操作大量數據 = StringBuilder
          3.多線程操作字符串緩衝區 下操作大量數據 = StringBuffer

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