2022準(zhǔn)備面試,閱讀一些源碼,提升自己.
一.String Stringbuffer Stringbuild
String,StringBuffer,StringBuilder最終底層存儲與操作的都是char數(shù)組.但是String里面的char數(shù)組是final的,而StringBuffer,StringBuilder不是,也就是說,String是不可變的,想要新的字符串只能重新生成String.而StringBuffer和StringBuilder只需要修改底層的char數(shù)組就行.相對來說,開銷要小很多.
String的大多數(shù)方法都是重新new一個新String對象返回,頻繁重新生成容易生成很多垃圾.
還是那句古話,StringBuffer是線程安全的,StringBuilder是線程不安全的.因為StringBuffer的方法是加了synchronized鎖起來了的,而StringBuilder沒有.
增刪比較多時用StringBuffer或StringBuilder(注意單線程與多線程)。實際情況按需而取吧鸣戴,既然已經(jīng)知道了里面的原理
二. ArrayList