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

首頁 > 編程 > Java > 正文

JAVA中StringBuffer與String的區別解析

2019-11-26 15:40:45
字體:
來源:轉載
供稿:網友

看到這個講解的不錯,所以轉一下

在java中有3個類來負責字符的操作。

1.Character 是進行單個字符操作的,

2.String 對一串字符進行操作,不可變類。

3.StringBuffer 也是對一串字符進行操作,是可變類。

String:
    是對象不是原始類型.
    為不可變對象,一旦被創建,就不能修改它的值.
    對于已經存在的String對象的修改都是重新創建一個新的對象,然后把新的值保存進去.
String 是final類,即不能被繼承.

StringBuffer:
    是一個可變對象,當對他進行修改的時候不會像String那樣重新建立對象
    它只能通過構造函數來建立,
    StringBuffer sb = new StringBuffer();
注意:不能通過賦值符號對它進行付值.
sb = "welcome to here!";//error
對象被建立以后,在內存中就會分配內存空間,并初始保存一個null.向StringBuffer中賦值的時候可以通過它的append()方法.
sb.append("hello");

字符串連接操作中StringBuffer的效率要比String高:

String str = new String("welcome to ");
str += "here";
的處理步驟實際上是通過建立一個StringBuffer,然后調用append(),最后
再將StringBuffer toSting();
這樣的話String的連接操作就比StringBuffer多出了一些附加操作,當然效率上要打折扣.

并且由于String 對象是不可變對象,每次操作Sting 都會重新建立新的對象來保存新的值.
這樣原來的對象就沒用了,就要被垃圾回收.這也是要影響性能的.

看看以下代碼:
將26個英文字母重復加了5000次,

復制代碼 代碼如下:

        String tempstr = "abcdefghijklmnopqrstuvwxyz";
        int times = 5000;
        long lstart1 = System.currentTimeMillis();
        String str = "";
        for (int i = 0; i < times; i++) {
            str += tempstr;
        }
        long lend1 = System.currentTimeMillis();
        long time = (lend1 - lstart1);
        System.out.println(time);

可惜我的計算機不是超級計算機,得到的結果每次不一定一樣一般為 46687左右。
也就是46秒。
我們再看看以下代碼
復制代碼 代碼如下:

        String tempstr = "abcdefghijklmnopqrstuvwxyz";
        int times = 5000;
        long lstart2 = System.currentTimeMillis();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < times; i++) {
            sb.append(tempstr);
        }
        long lend2 = System.currentTimeMillis();
        long time2 = (lend2 - lstart2);
        System.out.println(time2);

得到的結果為 16 有時還是 0
所以結論很明顯,StringBuffer 的速度幾乎是String 上萬倍。當然這個數據不是很準確。因為循環的次數在100000次的時候,差異更大。不信你試試

如果還是不能夠明白:

1)String的聯合+方法與StringBuff的append方法的區別:

String的+運算符在進行字符串運算時,首先將當前的字符串對象轉換為StringBuff 類型,調用其append方法,最后再將生成的StringBuff 對象通過其toString 方法轉換為String類型的字符串,所以其效率要低。

但是在可讀性上,還是String的連接運算符要高。

2)StringBuff是線程安全的

String是線程是非安全的

3)String是不可以修改的字符串對象,而StringBuff是可以修改的。

復制代碼 代碼如下:

public static boolean fileCopy(String srcStr, String destStr) {

File srcFile = null;

File destFile = null;

Reader reader = null;

Writer writer = null;

boolean flag = false;

try {

srcFile = new File(srcStr);

if (!srcFile.exists()) {

System.out.println(“源文件不存在”);

System.exit(0);

} else {

reader = new FileReader(srcFile);

}

destFile = new File(destStr);

writer = new FileWriter(destFile);

char[] buff = new char[1024];

int len;

String str = “”;

StringBuffer sbuff = new StringBuffer();

while ((len = reader.read(buff)) != -1) {

//        str += new String(buff, 0, len);

sbuff.append(new String(buff,0,len));

}

//      writer.write(str.toCharArray());

writer.write(sbuff.toString().toCharArray());

flag = true;

writer.flush();

reader.close();

writer.close();

} catch (IOException e) {

System.out.println(“文件拷貝異常:= ” + e.getMessage());

}

return flag;

}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品在线免费| 亚洲国产91精品在线观看| 亚洲欧美日韩一区二区在线| 亚洲精品福利免费在线观看| 乱亲女秽乱长久久久| 精品免费在线观看| 成人国产精品色哟哟| 中文精品99久久国产香蕉| 久久久久久亚洲精品不卡| 日韩亚洲欧美中文在线| 91香蕉嫩草神马影院在线观看| 不卡av在线播放| 亚洲性xxxx| 久久久国产精品免费| 国产精品无码专区在线观看| 国产一区二区激情| 久久久精品美女| 亚洲精品国产精品国自产观看浪潮| 欧美精品中文字幕一区| 最新国产精品亚洲| 亚洲大尺度美女在线| 亚洲精品国偷自产在线99热| 成人伊人精品色xxxx视频| 日韩精品有码在线观看| 亚洲福利影片在线| 欧美日韩免费在线| 国产成人精彩在线视频九色| 国产一区二区三区精品久久久| 久久久久久亚洲精品| 丝袜美腿亚洲一区二区| 91精品久久久久久久久| 一个人看的www久久| 日韩免费在线电影| 欧美电影在线观看网站| 成人av资源在线播放| 国产一区二区三区网站| 欧美丝袜一区二区三区| 久久精品国产一区二区电影| 国内精品一区二区三区四区| 91在线免费观看网站| 欧美日韩免费网站| 国产成人激情视频| 亚洲黄色片网站| 亚洲男人的天堂在线| 亚洲精品中文字幕女同| 久久亚洲精品小早川怜子66| 国产精品国产亚洲伊人久久| 亚洲精品天天看| 一夜七次郎国产精品亚洲| 欧美性xxxxxx| 日韩最新在线视频| 亚洲天堂av电影| 狠狠色狠狠色综合日日五| 欧美国产精品人人做人人爱| 亚洲免费影视第一页| 亚洲人免费视频| 亚洲国产成人精品久久| 国产精品高清在线| 91精品久久久久久久久| 九九视频这里只有精品| 亚洲高清av在线| 亚洲美女精品成人在线视频| 国产午夜精品视频| 日产精品久久久一区二区福利| 欧美国产亚洲精品久久久8v| 国产在线视频欧美| 国产一区二区三区免费视频| 2019精品视频| 日韩美女在线观看一区| 亚洲人成网在线播放| 91免费版网站入口| 色爱av美腿丝袜综合粉嫩av| 精品久久久久久久大神国产| 欧美亚洲国产日韩2020| 国产精品永久免费观看| 中文字幕日韩精品有码视频| 久久精品国产精品| 国产一区在线播放| 97国产真实伦对白精彩视频8| 久久伊人色综合| 精品女同一区二区三区在线播放| 亚洲美女视频网| 日韩国产高清污视频在线观看| 国产精品旅馆在线| 91香蕉亚洲精品| 亚洲乱码国产乱码精品精天堂| zzjj国产精品一区二区| 亚洲图片欧美午夜| 都市激情亚洲色图| 欧美日韩亚洲高清| 国产日韩欧美日韩| 欧美精品手机在线| 欧美激情中文字幕乱码免费| 久久久精品视频成人| 亚洲精品videossex少妇| 日韩欧美中文字幕在线播放| 国产日韩欧美电影在线观看| 日韩精品亚洲精品| 亚洲欧洲xxxx| 久久久久久久久久久免费精品| 亚洲国产黄色片| 亚洲精品国产精品乱码不99按摩| 日韩精品极品视频| 国产999在线观看| 26uuu亚洲国产精品| 亚洲福利在线播放| 亚洲第一区中文99精品| 欧美日本精品在线| 青青草一区二区| 国产精品一区二区3区| 亚洲自拍偷拍第一页| 在线看日韩欧美| 国产精品一区二区性色av| 久久影院免费观看| 亚洲精品国产精品国产自| 日韩精品999| 国产成人免费91av在线| 亚洲欧美变态国产另类| 久久成人精品视频| 国产精品99久久久久久白浆小说| 欧美一性一乱一交一视频| 91精品国产高清久久久久久久久| 成人黄色中文字幕| 4p变态网欧美系列| 亚洲精品久久久久中文字幕二区| 亚洲精品丝袜日韩| 午夜精品视频在线| 高清欧美性猛交xxxx| 亚洲自拍偷拍第一页| 欧美亚洲一区在线| 国产精品视频自拍| 国产视频福利一区| 韩曰欧美视频免费观看| 日韩成人中文字幕在线观看| 久久综合久久美利坚合众国| 精品亚洲国产视频| 亚洲免费视频在线观看| 久久国产加勒比精品无码| 国产精品av电影| 日本视频久久久| 国产91精品在线播放| 久久精品电影网| 国产精品大片wwwwww| 日本久久久久久久久久久| 国产精品三级美女白浆呻吟| 亚洲香蕉成视频在线观看| 2019亚洲男人天堂| 亚洲人成在线免费观看| 国产精品美女www爽爽爽视频| 久久九九热免费视频| 国产xxx69麻豆国语对白| 欧美老女人xx| 欧美日韩加勒比精品一区| 欧美黄色小视频| 亚洲男人天堂网站| 国产999精品久久久| 日韩高清中文字幕| 国产精品国产自产拍高清av水多| 日韩精品极品视频免费观看| 亚洲成人免费在线视频| 久久精品国产亚洲一区二区| 色综合久久88色综合天天看泰| 亚洲久久久久久久久久久| 国产精品第一视频|