StringBuffer,StringBuilder,String的比較

1.執行速度方面的比較

StringBuilder>StringBuffer>Stringjava

爲何String的執行速度低?安全

在java文檔中String類對象被稱做不可變字符串,對String類對象進行的修改,實際並無改變原字符串的代碼單元序列,而是建立了一個新的字符串,若須要在大量的修改字符串的狀況下,String類對象每次修改都須要構建一個新的String對象,既耗時,又浪費空間, 使用StringBuilder類就能夠避免這個問題的發生若須要改變字符串,只須要調用append方法bash

StringBuilder builder=new StringBuilder();
builder.append(ch);//appends a single character
builder.append(str);//appends a string
複製代碼

在須要構建字符串時調用toString便可多線程

String str=builder.toString();
複製代碼

那麼爲何StringBuilder的性能優於StringBuffer呢?app

由於StringBuilder沒有考慮多線程的狀況,在多線程的狀況下不安全,而StringBuffer在多線程下線程安全,天然速度就比不上StringBuilder性能

2.多種狀況下StringBuffer,StringBuilder,String的使用

1.操做數據量少使用String,編譯器能夠使不變的字符串共享ui

2.單線程數據量多使用StringBuilderspa

3.多線程數據量多使用StingBuffer線程

相關文章
相關標籤/搜索