1. 程式人生 > >String類、StringBuffer和StringBuilder類

String類、StringBuffer和StringBuilder類

構造方法 inf 先後 uil 可能 速度 tro col 多線程

String

String類有11種構造方法,這些方法提供不同的參數來初始化字符串,比如提供一個字符數組參數:

1 package test;
2 
3 public class Test{
4       public static void main(String args[]){
5           char[] helloArray = { ‘h‘, ‘e‘, ‘l‘, ‘l‘, ‘o‘, ‘.‘};
6           String helloString = new String(helloArray);  
7           System.out.println( helloString );
8 } 9 }
hello.

StringBuffer和StringBuilder類

當對字符串進行修改的時候,需要使用StringBuffer和StringBuilder類。

和String類不同的是,StringBuffer和StringBuilder類的對象能夠被多次的修改,並且不產生新的未使用對象。

StringBuilder類在Java 5中被提出,它和StringBuffer之間的最大不同在於StringBuilder的方法不是線程安全的(線程安全就是多線程訪問時,采用了加鎖機制,當一個線程訪問該類的某個數據時,進行保護,其他線程不能進行訪問直到該線程讀取完,其他線程才可使用。不會出現數據不一致或者數據汙染。線程不安全就是不提供數據訪問保護,有可能出現多個線程先後更改數據造成所得到的數據是臟數據)。

由於StringBuilder相較於StringBuffer有速度優勢,所以多數情況下建議使用StringBuilder類。然而在應用程序要求線程安全的情況下,則必須使用StringBuffer類。

1 package test;
2 
3 public class Test{
4     public static void main(String args[]){
5        StringBuffer sBuffer = new StringBuffer(" test");
6        sBuffer.append(" String Buffer");
7        System.out.println(sBuffer);  
8 } 9 }

技術分享圖片

String類、StringBuffer和StringBuilder類