1. 程式人生 > 其它 >Java網路程式設計03:TCP連線

Java網路程式設計03:TCP連線

在Java中字串是不可變的,每一次拼接都會產生新字串,這會導致佔用大量的方法區記憶體,造成記憶體空間的浪費。

String s = "";
for(int i=0;i<100;i++){
    s += i;          
}

以上例子會讓java方法區字串常量池帶來很大的壓力。如果要進行大量字串拼接操作,可以使用StringBuilder和StringBuffer。

StringBuilder

StringBuilder是一個可變的字串類,可以把它看成是一個容器,可變指的是StringBuilder物件中的內容可變的。

//構造方法,建立一個初始化容量為16byte[](字串緩衝區物件)
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder("xxx");
//新增資料,並返回物件本身
public StringBuilder append(任意型別)
//返回相反的字元序列
public StringBuilder reverse()

如果String型別想要使用append或者reverse方法必須要轉化成StringBuilder

//StringBuilder轉化為String
public String toString()
//String轉化為StringBuilder
public StringBuilder(String s)

StringBuffer和StringBuilder基本類似,區別在於StringBuffer中的方法都有synchronized關鍵字修飾,表示StringBuffer在多執行緒環境下執行是安全的;而StringBuilder中的方法中沒有,所以是非執行緒安全。