1. 程式人生 > >String 和StringBuilder、StringBuffer 的區別?

String 和StringBuilder、StringBuffer 的區別?

答:Java 平臺提供了兩種型別的字串:String 和StringBuffer / StringBuilder,它們可以儲存和操作字元 串。其中 String 是隻讀字串,也就意味著 String 引用的字串內容是不能被改變的。而 StringBuffer 和 Stri ngBuilder 類表示的字串物件可以直接進行修改。StringBuilder 是 JDK 1.5 中引入的,它和 StringBuffer 的 方法完全相同,區別在於它是在單執行緒環境下使用的,因為它的所有方面都沒有被 synchronized 修飾,因此它 的效率也比 StringBuffer 略高。
有一個面試題問:有沒有哪種情況用 + 做字串連線比呼叫 StringBuffer / StringBuilder 物件的 append 方法 效能更好?如果連線後得到的字串在靜態儲存區中是早已存在的,那麼用+做字串連線是優於 StringBuffer / StringBuilder 的 append 方法的。