String 大家庭

Java字符串大家庭主要包括 String StringBuilder StringBuffer

String

String 是一個不可變類,創建方式有2種,如下:

String a = "hello";  // a 字符串存放在字符串常量池中
String b = new String("hello"); //b 字符串存放在堆中

String 既然是一個不可變的,那麼如何進行拼接操作呢?那就需要藉助StringBuiler 了。
既然String是不可變的,那它一定是個線程安全的類。

StringBuiler

下面我們修改一個字符串

String a = "hello";    
String b = a + "abc";

其實現方式其實是如下的:

String a = "hello";  
StringBuilder s = new StringBuilder(a);  //將String字符串放入到StringBuilder對象中
s.append("abc"); //將  abc 拼接到 hello 上
return s.toString();  //返回一個字符串結果

StringBuilder 不是一個線程安全的類。在單線程下會快於StringBuffer。

StringBuffer

由於String方法對字符串的拼接修改等操作過於複雜,這時候StringBuffer就該站出來了。
StringBuffer 是一個字符串緩衝區,並且是一個可變類。所以我們可以直接在當前的StringBuffer中進行字符串的操作,不會進行其他的複雜操作,如下

StringBuffer s = new StringBuffer("hello"); //初始化一個緩衝區
s.append("abc"); //將字符串加入緩衝區

並且StringBuffer是一個線程安全的,在多線程情況下。操作數據量大的字符串的時候StringBuffer是一個不錯的選擇。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章