您好,登錄后才能下訂單哦!
StringBuffer和StringBuilder的區(qū)別是什么?相信大部分人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,話(huà)不多說(shuō),一起往下看吧。
1.StringBuffer和StringBuilder的區(qū)別?
共同點(diǎn):
都是可變的字符序列
不同點(diǎn):
StringBuffer:是一個(gè)線(xiàn)程安全的類(lèi), 同步的,線(xiàn)程角度來(lái)說(shuō),執(zhí)行效率低
StringBuilder:是一個(gè)線(xiàn)程不安全的類(lèi),不同步的,線(xiàn)程角度來(lái)說(shuō),執(zhí)行效率高
在單線(xiàn)程程序中,StringBuilder用來(lái)替代StringBuffer
2.StringBuffer和數(shù)組都屬于容器,有什么區(qū)別?
StringBuffer:
構(gòu)造的是一個(gè)字符串緩沖區(qū),里面存儲(chǔ)的內(nèi)容都字符串內(nèi)容,可變的字符序列,它的長(zhǎng)度可以變化的!
數(shù)組:
存儲(chǔ)元素必須是同一種數(shù)據(jù)類(lèi)型 int[] arr = {int類(lèi)型的元素...} ; 數(shù)組的長(zhǎng)度是固定的,不支持可變的!
3.StringBuffer和String類(lèi)型作為形式參數(shù)有什么區(qū)別?
String:
是一種特殊的引用類(lèi)型,它作為形式參數(shù)和基本數(shù)據(jù)類(lèi)型作為形式參數(shù)是一樣的!
StringBuffer:
它作為形式參數(shù),和引用類(lèi)型一樣,形式參數(shù)的改變直接影響實(shí)際參數(shù)
//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) ; //方法調(diào)用,形式參數(shù) "worldworld" 是直接可以傳遞出去的
}
以上就是StringBuffer和StringBuilder區(qū)別的詳細(xì)內(nèi)容了,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。