String物件的長度是固定的, 不能改變它的內容. 在程式中, 使用+來串接字串實際上會產生新的字串物件. 如果程式中此動作非常頻繁, 程式會變得比較沒有效率.
在J2SE 5.0之前, 可以使用StringBuffer來做這些字串的處理, 從J2SE 5.0開始, 也可以使用StringBuilder來做相同的事情. 這兩個類別的差別在於多執行緒的同步管理. 如果程式是多執行緒程式, 則使用StringBuffer, 因為StringBuilder沒有處理同步的問題.
public class AppendStringTest {
public static void main(String[] args) {
StringBuilder builder = new StringBuilder("");
long beginTime = System.currentTimeMillis();
for(int i=0; i<10000; i++)
builder.append(String.valueOf(i));
long endTime = System.currentTimeMillis();
System.out.println("執行時間: "+(endTime-beginTime));
String text = "";
beginTime = System.currentTimeMillis();
for(int i=0; i<10000; i++)
text = text + i;
endTime = System.currentTimeMillis();
System.out.println("執行時間: "+(endTime-beginTime));
}
}
沒有留言:
張貼留言