StringBuffer與StringBuilder
Java是一種非常流行的面嚮對象語言。在Java中,提供String類來保存不能修改的字符序列(一旦初始化)。或者,Java編程語言提供兩種類型的可變字符序列。也就是說,當程序員需要修改某個字符串(在初始化之後),他們需要使用StringBuffer類或StringBuilder類,而不是String類。StringBuffer是在JDK1.0中引入的,StringBuilder類是在JDK1.5中引入的,實際上是作為StringBuffer類(用於單線程環境)的替代品。
什麼是StringBuffer?
StringBuffer類是在JDK1.0中引入的。StringBuffer類屬於java.lang語言包並從泛型繼承java.lang.object. 程序員不能進一步擴展它,因為它是一個final類。StringBuffer類實現可序列化、可附加和CharSequience接口。StringBuffer類的對象可以保存可變且線程安全的字符序列。這意味著,它非常類似於String對象,但是在初始化StringBuffer對象之後,字符序列(長度和內容)可以隨時更改。但是,這應該使用StringBuffer類提供的特定方法來完成。StringBuffer類中有兩個主要操作。它們由append()和insert()方法提供。這些方法重載,因此它們能夠接受任何類型的數據,如integer和long。這兩種方法首先將任何輸入轉換為字符串,然後將相應字符串的字符添加(追加或**)到現有的Stribbuffer對象。append()方法將轉換後的字符串添加到現有StringBuffer對象的末尾,而insert()方法將向指定的**點添加輸入字符。
什麼是StringBuilder?
StringBuilder類是在JDK1.5中引入的。StringBuilderAPI非常類似於StringBufferAPI。實際上,StringBuilder類實際上是作為StringBuffer類的替代品引入的(對於單線程應用程序)。StringBuilder類屬於java.lang語言包並從泛型繼承java.lang.object. 它是一個final類,因此程序員不能擴展它。StringBuilder類實現可序列化、可附加和CharSequience接口。StringBuilder類的對象可以包含可變但不是線程安全的字符序列。這意味著,它非常類似於String對象,但是字符串可以隨時更改。但StringBuilder類不提供同步,因此據稱比使用StringBuffer類更快。StringBuilder類提供的append()和insert()方法具有與StringBuffer類中完全相同的功能。
StringBuffer和StringBuilder有什麼區別?