亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

全面解釋java中StringBuilder、StringBuffer、String類之間的關系

2019-11-26 16:15:48
字體:
來源:轉載
供稿:網友
1. String 類

  String的值是不可變的,這就導致每次對String的操作都會生成新的String對象,不僅效率低下,而且大量浪費有限的內存空間。
String a = "a"; //假設a指向地址0x0001
a = "b";//重新賦值后a指向地址0x0002,但0x0001地址中保存的"a"依舊存在,但已經不再是a所指向的,a 已經指向了其它地址。
因此String的操作都是改變賦值地址而不是改變值操作。

2. StringBuffer是可變類,和線程安全的字符串操作類,任何對它指向的字符串的操作都不會產生新的對象。 每個StringBuffer對象都有一定的緩沖區容量,當字符串大小沒有超過容量時,不會分配新的容量,當字符串大小超過容量時,會自動增加容量。

StringBuffer buf=new StringBuffer(); //分配長16字節的字符緩沖區
StringBuffer buf=new StringBuffer(512); //分配長512字節的字符緩沖區
StringBuffer buf=new StringBuffer("this is a test")//在緩沖區中存放了字符串,并在后面預留了16字節的空緩沖區。

3.StringBuffer
  StringBuffer和StringBuilder類功能基本相似,主要區別在于StringBuffer類的方法是多線程、安全的,而StringBuilder不是線程安全的,相比而言,StringBuilder類會略微快一點。對于經常要改變值的字符串應該使用StringBuffer和StringBuilder類。

4.線程安全
StringBuffer 線程安全
StringBuilder 線程不安全

5.速度
一般情況下,速度從快到慢:StringBuilder>StringBuffer>String,這種比較是相對的,不是絕對的。

6.總結
(1).如果要操作少量的數據用 = String
(2).單線程操作字符串緩沖區 下操作大量數據 = StringBuilder
(3).多線程操作字符串緩沖區 下操作大量數據 = StringBuffer

以下是代碼與演示說明:

復制代碼 代碼如下:

public class TestCharacter {
final static int time = 50000; //循環次數

public TestCharacter(){

}
public void test(String s){
long begin = System.currentTimeMillis();
for(int i=0; i<time; i++){
s += “add”;
}
long over = System.currentTimeMillis();
System.out.println(“操作”+s.getClass().getName()+”類型使用的時間為:”+(over-begin)+”毫秒”);
}
public void test(StringBuffer s){
long begin = System.currentTimeMillis();
for(int i=0; i<time; i++){
s.append(“add”);
}
long over = System.currentTimeMillis();
System.out.println(“操作”+s.getClass().getCanonicalName()+”類型使用的時間為:”+(over-begin)+”毫秒”);
}
public void test(StringBuilder s){
long begin = System.currentTimeMillis();
for(int i=0; i<time; i++){
s.append(“add”);
}
long over = System.currentTimeMillis();
System.out.println(“操作”+s.getClass().getName()+”類型使用的時間為:”+(over-begin)+”毫秒”);
}

/*對 String 直接進行字符串拼接的測試*/
public void test2(){
String s2 = “abcd”;
long begin = System.currentTimeMillis();
for(int i=0; i<time; i++){
String s = s2 + s2 +s2;
}
long over = System.currentTimeMillis();
System.out.println(“操作字符串對象引用相加類型使用的時間為:”+(over-begin)+”毫秒”);
}
public void test3(){
long begin = System.currentTimeMillis();
for(int i=0; i<time; i++){
String s =”abcd” + “abcd” + “abcd”;
}
long over = System.currentTimeMillis();
System.out.println(“操作字符串相加使用的時間為:”+(over-begin)+”毫秒”);
}
public static void main(String[] args){
String s1 = “abcd”;
StringBuffer st1 = new StringBuffer(“abcd”);
StringBuilder st2 = new StringBuilder(“abcd”);
TestCharacter tc = new TestCharacter();
tc.test(s1);
tc.test(st1);
tc.test(st2);
tc.test2();
tc.test3();
}
}

我在myeclipse和dos下都運行了這段代碼,各自打印出的時間有些不同,運行結果如下:
1)myeclipse下循環10000次時:

2)myeclipse下循環50000次時:

3)在DOS下運行時:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产激情综合五月久久| 国产精品久久久久久久久免费| 国产97在线|亚洲| 97精品国产97久久久久久春色| 亚洲xxx视频| 欧美日韩激情视频| 亚洲图片制服诱惑| 国产成人在线亚洲欧美| 91久久在线视频| 97精品伊人久久久大香线蕉| 亚洲人a成www在线影院| 日韩高清a**址| 国产精品成人va在线观看| 国产91网红主播在线观看| 欧美国产日韩视频| 亚洲女人天堂av| 亚洲人线精品午夜| 九九久久久久99精品| 日韩在线视频二区| 国产亚洲精品高潮| 亚洲人成在线免费观看| 一本色道久久88综合日韩精品| 久久天天躁日日躁| 日韩中文字幕欧美| 国产精品永久免费观看| 国产中文欧美精品| 亚洲电影免费观看高清| 日韩欧美主播在线| 亚洲黄色在线观看| 亚洲黄色av女优在线观看| 国内伊人久久久久久网站视频| 久久久黄色av| 亚洲第一区在线观看| 日韩中文字幕在线播放| 日韩av在线网| 久久av资源网站| 日韩**中文字幕毛片| 亚洲欧美日韩国产成人| 国产精品aaa| 日本久久久久亚洲中字幕| 亚洲激情电影中文字幕| 国内成人精品视频| 欧美日韩第一页| 欧美xxxx18国产| 精品成人久久av| 国产一区二区三区在线免费观看| 亚洲精品少妇网址| 欧美成人小视频| 2019精品视频| 亚洲黄页网在线观看| 日韩一区二区三区在线播放| 久久国产精品久久久久久| 欧美视频在线观看免费网址| 欧美一区二区三区艳史| 久久成人一区二区| 亚洲午夜小视频| 成人欧美一区二区三区在线湿哒哒| 欧美亚洲午夜视频在线观看| 精品久久久精品| 成人激情av在线| 久久99久久亚洲国产| 久久久av亚洲男天堂| 国产成人高清激情视频在线观看| 亚洲精品久久久久中文字幕欢迎你| 欧美精品videos另类日本| 国产日本欧美在线观看| 奇米4444一区二区三区| 久久精品影视伊人网| 在线一区二区日韩| 久久精品免费播放| 一区二区av在线| 国产精品igao视频| 国产性色av一区二区| 日韩精品久久久久久久玫瑰园| 亚洲黄色有码视频| 国产+成+人+亚洲欧洲| 久久九九国产精品怡红院| 久久免费视频网站| 欧美丝袜美女中出在线| 热re99久久精品国产66热| 日韩精品在线电影| 精品亚洲一区二区三区在线播放| 57pao成人永久免费视频| 久久精品国产亚洲精品2020| 日韩免费在线免费观看| 一本久久综合亚洲鲁鲁| 国产精品第七十二页| 91精品国产色综合久久不卡98| 91精品国产自产在线观看永久| 97精品国产97久久久久久免费| 亚洲欧美国产一本综合首页| 91在线色戒在线| 国产精品久久中文| 岛国av一区二区在线在线观看| 97在线看免费观看视频在线观看| 国产91精品最新在线播放| 亚洲国产成人精品电影| 日韩中文视频免费在线观看| 欧美日韩免费网站| 91在线视频九色| 亚洲国产99精品国自产| 日本欧美在线视频| 免费97视频在线精品国自产拍| 久久久久99精品久久久久| 米奇精品一区二区三区在线观看| 日韩精品高清在线观看| 欧美日韩亚洲视频一区| 成人精品一区二区三区| 国产一区私人高清影院| 成人444kkkk在线观看| 日韩av在线一区二区| 日韩中文字幕在线精品| 在线色欧美三级视频| 亚洲国产欧美一区二区三区久久| 亚洲第一精品夜夜躁人人躁| 亚洲最新av网址| 久久中文字幕国产| 亚洲天堂av电影| 亚洲精品国产精品国自产观看浪潮| 欧美成人亚洲成人日韩成人| 国产精品久久久久久久av电影| 日韩久久免费视频| 91深夜福利视频| 久久夜精品香蕉| 久久精品在线视频| 美女精品久久久| 久久久久国产精品免费网站| 神马久久久久久| 国产成人福利网站| 亚洲影院高清在线| www.欧美免费| 在线看欧美日韩| 日韩欧美亚洲一二三区| 欧美激情精品久久久久久大尺度| 久久国产精品久久久| 日韩中文字幕不卡视频| 亚洲国产一区二区三区在线观看| 亚洲欧美国产精品久久久久久久| 欧美大学生性色视频| 国产不卡在线观看| 日韩av中文字幕在线| 久久人人爽人人爽人人片av高请| 欧美夫妻性视频| 精品日韩视频在线观看| 欧美成人一区二区三区电影| 精品国产鲁一鲁一区二区张丽| 欧美性理论片在线观看片免费| 亚洲精品av在线播放| 日本精品久久久| 亚洲第一精品夜夜躁人人爽| 欧美综合一区第一页| 欧美视频在线观看免费网址| 欧美剧在线观看| 成人在线视频福利| 国产成人+综合亚洲+天堂| 2024亚洲男人天堂| 国产精品老女人视频| 精品国产美女在线| 97免费视频在线播放| 亚洲mm色国产网站| 国产成人精品一区二区| 亚洲精品国精品久久99热一| 中文国产亚洲喷潮| 高清欧美性猛交xxxx黑人猛交|