Java中String和stringBuffer之間的區(qū)別

String

特點

  • String每次在改變的時候其實在內(nèi)存當中的實現(xiàn)方式是新建一片內(nèi)存來儲存新的字符串然后把內(nèi)存地址指向這個新的區(qū)域。
  • 在某些特別情況下, String 對象的字符串拼接其實是被 JVM 解釋成了 StringBuffer 對象的拼接,所以這些時候 String 對象的速度并不會比 StringBuffer 對象慢,而特別是以下的字符串對象生成中, String 效率是遠要比 StringBuffer 快的:
    String S1 = “This is only a” + “ simple” + “ test”;

StringBuffer

特點

  • 擅長增刪操作
  • 線程安全

常見用法

  • 賦值:
string s = "abc";
StringBuffer stringBuffer = "abc";//這是錯誤的
StringBuffer stringBuffer = new StringBUffer("abc");//新建一個Stringbuffer對象
StringBuffer string = new StringBuffer(s);//把string轉(zhuǎn)化成stringbuffer對象
  • append方法:追加內(nèi)容到當前StringBuffer對象的末尾
  • deleteCharAt方法:刪除指定位置的字符
  • insert :插入
  • reverse:將內(nèi)容反轉(zhuǎn)
  • setCharAt:
存儲

StringBuffer append(基本數(shù)據(jù)類型); //將指定數(shù)據(jù)作為參數(shù)添加到已有數(shù)據(jù)結(jié)尾處.。StringBuffer insert(int index,基本數(shù)據(jù)類型); //可以將數(shù)據(jù)插入到指定index位置。

刪除
StringBuffer delete(start,end):刪除緩沖區(qū)中的數(shù)據(jù),包含start,不包含end。StringBuffer deleteCharAt(index):刪除指定位置的字符。

獲取
char charAt(int index); int indexOf(String str); int lastIndexOf(String str);int length(); String substring(int start, int end);

修改
StringBuffer replace(int start,int end,String str);void setCharAt(int index, char ch);

反轉(zhuǎn)
StringBuffer reverse();

其他
//將緩沖區(qū)中指定數(shù)據(jù)存儲到指定字符數(shù)組中。void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) StringBuffer sb = new StringBuffer("abcedf");char[] chs = new char[4];sb.getChars(1,4,chs,1);

StringBuilder

特點

  • 線程不安全,他是設(shè)計出來在單線程當中替換stringBUffer的,她是StringBuffer的單線程等價類
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容