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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

String、StringBuilder和StringBuffer的区别和用法

發布時間:2024/8/23 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 String、StringBuilder和StringBuffer的区别和用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

分別使用使用這三種來拼接字符串,對比各自損耗的時間:
經過測試:

package com.test;public class Main{public static void main(String[] args){testString();testStringBuffer();testStringBuilder();}private static void testStringBuilder() {long begin = System.currentTimeMillis();StringBuilder str = new StringBuilder("");for (int i = 0; i < 30000; i++) {str.append(i);}long end = System.currentTimeMillis();long time = end - begin;System.out.println("-------------StringBuilder性能快--------------");System.out.println(time);}private static void testStringBuffer() {long begin = System.currentTimeMillis();StringBuffer str = new StringBuffer("");for (int i = 0; i < 30000; i++) {str.append(i);}long end = System.currentTimeMillis();long time = end - begin;System.out.println("------------StringBuffer安全的---------------");System.out.println(time);}//String 做做字符串拼接的時候,性能極低,每次拼接的時候對象改變public static void testString(){long begin = System.currentTimeMillis();String str = ""; /* for (int i = 0; i < 30000; i++) {str += i;}*/for(Integer i =0; i< 30000; i++){str += i.toString();}long end = System.currentTimeMillis();long time = end - begin;System.out.println("-----------String----------------");System.out.println(time);} }

結論:以后拼接字符串,統統使用StringBuffer/StringBuilder,不要使用String。

String和StringBuilder以及StringBuffer的區別:
StringBuffer和StringBuilder都表示可變的字符串,功能方法都是相同的。

唯一的區別(建議使用StringBuilder):
StringBuffer:StringBuffer中的方法都使用synchronized修飾符,表示同步的在多線程并發的時候可以保證線程安全,保證線程安全的時候,性能(速度)較低。
StringBuilder:StringBuilder沒有使用synchronized修飾符,不安全,但性能高。
StringBuilder sb = new StringBuilder ()等價于…new StringBuilder(16)(API可見..) 使用StringBUilder無參數的構造器,在底層創建一個長度為16的char數組:
char[] value = new char[16];
此時該數組只能存儲16字符,如果超過了,得自動擴容:
自動擴容(創建長度更大得數組,再把之前得數組拷貝到新數組)
此時性能極低,一般得,我們事先知道大概需要存儲多少字符,在構造器中就應該設置。
//創建長度為80得字符數組
new StringBuilder(80);

package com.test;public class M1001{public static void main(String[] args) {StringBuilder sb1 = new StringBuilder(16);//鏈式編程sb1.append("A").append("B");System.out.println(sb1);//之所以可以用鏈式編程因為返回的是this指針,例如oxx()new M1001().ooxx().ooxx().ooxx();System.out.println("----------刪除最后一個字符-----------------");String str ="abcdefg";StringBuffer newString = new StringBuffer(str).deleteCharAt(str.length()-1);System.out.println(newString);System.out.println("--------字符串反轉方法-------------------");System.out.println(new StringBuffer("asdf").reverse());}public M1001 ooxx(){return this;} } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的String、StringBuilder和StringBuffer的区别和用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 污视频在线 | 国产一级久久久久毛片精品 | 国产乱淫av片免费 | 免费精品视频 | 国产乱在线 | 中文字幕亚洲精品 | 九九欧美 | 香蕉网久久 | 免费福利视频网站 | 手机av在线免费观看 | 国产在线观看一区二区三区 | 久久伊人五月天 | 久久久久久久久久久久久女过产乱 | 国产色拍 | 丝袜淫脚 | 中文字幕国产一区二区 | 高清黄色一级片 | 尤物在线视频观看 | 精品亚洲国产成av人片传媒 | 五月天激情电影 | 午夜理伦三级理论 | 成人午夜视频在线观看 | 国产国产乱老熟女视频网站97 | 精品久久久999 | 午夜视频福利 | 山村淫强伦寡妇 | 中出在线 | 91视频黄色 | 欧美激情一区二区 | 日本性网站 | 国产又色又爽无遮挡免费动态图 | 欧美干 | 亚洲精品~无码抽插 | 射在线| 99热这里只有精品9 日韩综合在线 | 亚洲高清精品视频 | 草草影院一区二区三区 | 丰满少妇被猛烈进入无码 | 在线观看av资源 | 日韩成人av电影 | 成人动漫视频 | 精品免费看 | 国产激情av一区二区三区 | 97超碰人人澡人人爱学生 | 中文在线字幕免费观 | 综合色亚洲 | 日本在线观看a | 成人区人妻精品一熟女 | 国产免费一区二区三区四区五区 | 欧美三级日本三级 | 日韩大胆人体 | 一级特黄妇女高潮2 | www在线观看免费视频 | 欧美日韩黄色一级片 | 成人公开免费视频 | 国产在线精品一区二区三区 | 国产学生美女无遮拦高潮视频 | 亚洲av无码久久精品色欲 | 明日叶三叶 | 日本黄色www | 另类亚洲色图 | 黑人大群体交免费视频 | 午夜av在线免费观看 | 日韩欧美中文字幕在线观看 | 在线播放成人 | 一区二区三区免费观看视频 | 中文字幕亚洲国产 | 99精品久久久久久久 | 久久亚洲精品石原莉奈 | 国产精品视频你懂的 | 狠狠久久综合 | 国产精品久久综合 | 欧美日本久久 | 天天射天天搞 | av片亚洲 | 我们的生活第五季在线观看免费 | 免费观看的毛片 | 黄色特级一级片 | 毛片视频网站 | 人人艹在线观看 | 国产午夜福利100集发布 | 免费看日韩av | 91欧美精品 | 国产特级毛片aaaaaa | 操亚洲| 天天操穴 | 99国产精品欲 | 日韩a级片 | 中文字幕一区二 | 久久久久久人妻一区二区三区 | 亚洲视频国产 | 亚洲aaa | 小少妇哺乳喂奶播放 | 伊人久综合| 日韩不卡高清 | 激情午夜av| 另类视频一区 | 看av免费毛片手机播放 | 亚洲va在线观看 |