日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

String,StringBuilder,StringBuffer,StringJoiner

發(fā)布時間:2024/1/18 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 String,StringBuilder,StringBuffer,StringJoiner 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

java標準庫提供了String,StringBuilder,StringBuffer,StringJoiner三個類
String類是不可變的對象,而其他三個類是可變的對象
首先,由于在String類中的定義存儲字符串的char[]數(shù)組,它被final關(guān)鍵字修飾,所以說String類是不可變的
而其他三個字符串類中char[]數(shù)組都沒有被定義為final.
其次,String類正因為不可變所以無法預(yù)分配緩沖區(qū),只能根據(jù)最終結(jié)果來分配。而其他三類都已經(jīng)預(yù)分配了緩沖區(qū)。
內(nèi)存空間為16+字符串的長度
接著,String類在新增字符時,會創(chuàng)建新的臨時對象。而其他三類正是因為可變的特性,所以可以直接修改char[]數(shù)組
所以不會創(chuàng)建新的臨時對象來存值。
StringBuilder ,StringBuffer,StringJoiner ,三個類都繼承自AbstractStringBuilder,實現(xiàn)的接口也一致。
StringBuilder的線程安全較差,但它的性能優(yōu)越。而StringBuffer的性能較低,但它的線程安全較高,它的方法被
synchronized關(guān)鍵字修飾,所以較為安全。但現(xiàn)在很少使用到StringBuffer類,更多使用的是StringBuilder。
StringBuilder支持鏈式操作
StringJoiner類是一個可以高效拼接字符串的類。

// 代碼實例
StringBuilder sbx = new StringBuilder(1024);
?? ?for (int i = 0; i < 1000; i++) {
?? ??? ? sb.append(',');
?? ??? ? ?sb.append(i);
?? ?}
?? ?String s = sb.toString();
?? ?System.out.println(s);

StringBuilder鏈式操作
StringBuilder sb = new StringBuilder(1024);

sb.append("Mr ")
? .append("Bob")
? .append("!")
? .insert(0, "Hello, ");

System.out.println(sb.toString());


// StringBuilder與String類中不同的 方法
StringBuilder ?sb = new StringBuilder
sb.append(b);// 在sb字符串的后邊拼接一個字符串。
sb.charAt(index);// 輸出字符串sb下標為index的值
sb.delete(start, end);// 刪除字符串從start開始,從end結(jié)束不包含end
sb.indexOf(str);// 查找字符串str在sb字符串中的位置,返回下標值
sb.reverse();// 將字符串逆序
sb.replace(start, end, str); // 替換字符串中的值,從start開始在end結(jié)束不包含end,替換為str
?

總結(jié)

以上是生活随笔為你收集整理的String,StringBuilder,StringBuffer,StringJoiner的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。