今天在整理不可變對象知識點(diǎn)時(shí),突然看到了String,StringBuffer,StringBuilder三者的區(qū)別,這里就挑一些我認(rèn)為比較重要的點(diǎn)記錄一下,方便日后查看。
String,StringBuffer,StringBuilder,都是final類,不允許被繼承,在本質(zhì)上都是字符數(shù)組,不同的是,String的長度是不可變的而后兩者長度可變,在進(jìn)行連接操作時(shí),String每次返回一個(gè)新的String實(shí)例,而StringBuffer和StringBuilder的append方法直接返回this,所以當(dāng)進(jìn)行大量的字符串連接操作時(shí),不推薦使用String,因?yàn)樗鼤a(chǎn)生大量的中間String對象。
StringBuffer和StringBuilder的一個(gè)區(qū)別是,StringBuffer在append方法前增加了一個(gè)synchronized修飾符,以起到同步的作用,為此也降低了執(zhí)行效率;若要在toString方法中使用循環(huán),使用StringBuilder。
新聞熱點(diǎn)
疑難解答