您好,登錄后才能下訂單哦!
StringBuffer和StringBuilder的區別是什么?相信大部分人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,話不多說,一起往下看吧。
1.StringBuffer和StringBuilder的區別?
共同點:
都是可變的字符序列
不同點:
StringBuffer:是一個線程安全的類, 同步的,線程角度來說,執行效率低
StringBuilder:是一個線程不安全的類,不同步的,線程角度來說,執行效率高
在單線程程序中,StringBuilder用來替代StringBuffer
2.StringBuffer和數組都屬于容器,有什么區別?
StringBuffer:
構造的是一個字符串緩沖區,里面存儲的內容都字符串內容,可變的字符序列,它的長度可以變化的!
數組:
存儲元素必須是同一種數據類型 int[] arr = {int類型的元素...} ; 數組的長度是固定的,不支持可變的!
3.StringBuffer和String類型作為形式參數有什么區別?
String:
是一種特殊的引用類型,它作為形式參數和基本數據類型作為形式參數是一樣的!
StringBuffer:
它作為形式參數,和引用類型一樣,形式參數的改變直接影響實際參數
//StringBuffer作為形參
public static void main(String[] args) {
StringBuffer sb1 = new StringBuffer("hello") ;
StringBuffer sb2 = new StringBuffer("world") ;
System.out.println("sb1:"+sb1); //hello
System.out.println("sb2:"+sb2);//world
change(sb1,sb2) ;
System.out.println("sb1:"+sb1);//hello
System.out.println("sb2:"+sb2);//worldworld
}
public static void change(StringBuffer sb1, StringBuffer sb2) {
sb1 = sb2 ; // sb1= sb2 = "world" :直接賦值的形式,形參傳遞不出去的!
sb2.append(sb1) ; //方法調用,形式參數 "worldworld" 是直接可以傳遞出去的
}
以上就是StringBuffer和StringBuilder區別的詳細內容了,看完之后是否有所收獲呢?如果想了解更多相關內容,歡迎關注億速云行業資訊!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。