1. 程式人生 > >String,StringBuffer,StringBuilder個人認為較重要的區別

String,StringBuffer,StringBuilder個人認為較重要的區別

 今天在整理不可變物件知識點時,突然看到了String,StringBuffer,StringBuilder三者的區別,這裡就挑一些我認為比較重要的點記錄一下,方便日後檢視。

    String,StringBuffer,StringBuilder都是final類,不允許被繼承在本質上都是字元陣列,不同的是,String的長度是不可變的而後兩者長度可變,在進行連線操作時,String每次返回一個新的String例項,而StringBuffer和StringBuilder的append方法直接返回this,所以當進行大量的字串連線操作時,不推薦使用String,因為它會產生大量的中間String物件。

StringBuffer和StringBuilder的一個區別是,StringBuffer在append方法前增加了一個synchronized修飾符,以起到同步的作用,為此也降低了執行效率;若要在toString方法中使用迴圈,使用StringBuilder。