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

首頁 > 學院 > 開發設計 > 正文

提升性能:使用String還是StringBuffer?

2019-11-18 11:54:56
字體:
來源:轉載
供稿:網友

    出于方便的考慮,我們在進行字符串的內容處理的時候往往會出現以下的代碼:String result="";result+="ok";

    這段代碼看上去似乎沒有什么問題,但是需要指出的是其性能很低,原因是java中的String類不可變的(immutable),這段代碼實際的工作過程會是如何的呢?通過使用javap工具我們可以知道其實上面的代碼在編譯成字節碼的時候等同的源代碼是:String result="";StringBuffer temp=new StringBuffer();temp.append(result);temp.append("ok");result=temp.toString();

    短短的兩個語句怎么呢變成這么多呢?問題的原因就在String類的不可變性上,而java程序為了方便簡單的字符串使用方式對+操作符進行了重載,而這個重載的處理可能因此誤導很多對java中String的使用。

    下面給出一個完整的代碼:

    public class Perf { public static String detab1(String s)

    { if (s.indexOf('/t') == -1)

    return s;String res = "";int len = s.length();int pos = 0;int i = 0;for (; i < len && s.charAt(i) == '/t'; i++)

    { res += "        ";pos += 8;} for (; i < len; i++)

    { char c = s.charAt(i);if (c == '/t') { do { res += " ";pos++;} while (pos % 8 != 0);} else { res += c;pos++;} return res;}

    public static String detab2(String s)

    { if (s.indexOf('/t') == -1)

    return s;StringBuffer sb = new StringBuffer();int len = s.length();int pos = 0;int i = 0;for (; i < len && s.charAt(i) == '/t'; i++)

    { sb.append("        ");pos += 8;} for (; i < len; i++) { char c = s.charAt(i);if (c == '/t') { do { sb.append(' ');pos++;} while (pos % 8 != 0);} else { sb.append(c);pos++;} return sb.toString();}

    public static String testlist[] = { "","/t","/t/t/tabc","abc/tdef","1234567/t8","12345678/t9","123456789/t" };

    public static void main(String args[])

    { for (int i = 0; i < testlist.length; i++) { String tc = testlist[i];if (!detab1(tc)。equals(detab2(tc)))

    System.err.PRintln(tc);}

    String test_string = "/t/tthis is a test/tof detabbing performance";int N = 5000;int i = 0;

    long ct = System.currentTimeMillis();for (i = 1; i <= N; i++)

    detab1(test_string);long elapsed = System.currentTimeMillis() - ct;System.out.println("String time = " + elapsed);

    ct = System.currentTimeMillis();for (i = 1; i <= N; i++)

    detab2(test_string);elapsed = System.currentTimeMillis() - ct;System.out.println("StringBuffer time = " + elapsed);}

    執行以上代碼的結果可以看到使用StringBuffer的版本的方法比使用String版本的一般都快十倍以上(本人使用的是JDK1.4.0),你可以執行一下看看結果到底如何。

    因此得到的結論是:假如你對字符串中的內容經常進行操作,非凡是內容要修改時,那么使用StringBuffer,假如最后需要String,那么使用StringBuffer的toString()方法好了!也許這就是你的程序的性能瓶頸!



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩一级裸体免费视频| 亚洲综合国产精品| 欧美性精品220| 久久夜精品va视频免费观看| 中文字幕精品一区二区精品| 色综合久久久久久中文网| 欧美韩日一区二区| 欧美性xxxxx极品| 久操成人在线视频| 这里只有精品久久| 中文字幕视频在线免费欧美日韩综合在线看| 国产精品久久久av久久久| 91精品国产乱码久久久久久蜜臀| 日本精品视频网站| 久久久欧美精品| 这里只有精品在线观看| 日韩美女视频中文字幕| 国产一区二区三区在线观看网站| 亚洲欧美中文日韩v在线观看| 欧美乱大交xxxxx另类电影| 国产成人激情视频| 91产国在线观看动作片喷水| 国产suv精品一区二区| 亚洲精品国精品久久99热一| 欧美午夜视频在线观看| 亚洲精品中文字幕女同| 国产精品福利在线观看| 中文字幕av日韩| 欧美日韩国产成人| 成人免费大片黄在线播放| 亚洲激情免费观看| 一区二区欧美亚洲| 欧美主播福利视频| 在线观看欧美成人| 日韩欧美有码在线| 国产在线a不卡| 欧美国产日韩一区| 欧美黑人国产人伦爽爽爽| 亚洲精品美女视频| 欧美精品videosex性欧美| 国内揄拍国内精品| 久久精品久久久久久国产 免费| 91九色视频导航| 亚州国产精品久久久| 国产精品久久久久久久久久三级| 国产精品久久久久秋霞鲁丝| 亚洲欧美国产精品专区久久| 欧美午夜xxx| 欧美日韩爱爱视频| 日韩电影免费在线观看| 91精品久久久久久| 国产成人精品网站| 久久久av亚洲男天堂| 国产精品日韩欧美大师| 欧美精品精品精品精品免费| 精品国产福利视频| 国产福利视频一区二区| 米奇精品一区二区三区在线观看| 综合欧美国产视频二区| 成人黄色av网站| 亚洲精品自拍第一页| 日韩中文字幕在线播放| 国产69精品99久久久久久宅男| 国产成人精品一区二区| 欧美理论电影在线观看| 欧美性感美女h网站在线观看免费| 影音先锋欧美在线资源| 欧美精品情趣视频| 国产亚洲精品久久久久久牛牛| 久久色精品视频| 色中色综合影院手机版在线观看| 国产成人在线播放| 中文字幕在线看视频国产欧美在线看完整| 在线一区二区日韩| 中文字幕日韩欧美在线视频| 海角国产乱辈乱精品视频| 中文字幕精品一区久久久久| 久久成人精品电影| 成人国产精品久久久| 久久亚洲精品中文字幕冲田杏梨| 欧美大片在线免费观看| 国内成人精品视频| 一区二区三区高清国产| 欧美激情精品久久久久| 久久99亚洲精品| 成人在线一区二区| 亚洲国产精品嫩草影院久久| 日韩欧美国产高清91| 欧美一级电影在线| 久久精品视频在线播放| 中文字幕av一区二区三区谷原希美| 最近2019中文字幕第三页视频| 日韩av在线不卡| 亚洲黄色在线观看| 一区二区成人av| 亚洲精品久久久久中文字幕二区| 日韩电影中文字幕一区| 国产精品久久久亚洲| 久久色免费在线视频| 欧美视频二区36p| 久久成人精品电影| 欧美一级电影在线| 亚洲偷熟乱区亚洲香蕉av| 欧美激情精品久久久久| 欧美精品手机在线| 韩国视频理论视频久久| 亚洲深夜福利视频| 亚洲国产欧美一区二区丝袜黑人| 91日韩在线播放| 亚洲女同精品视频| 亚洲韩国日本中文字幕| 97精品伊人久久久大香线蕉| 国产亚洲美女精品久久久| 高清一区二区三区四区五区| 91免费在线视频| 国产欧美精品在线| 久久久久久久av| 欧美精品性视频| 中文精品99久久国产香蕉| 欲色天天网综合久久| 亚洲精品一区中文字幕乱码| 久久精品视频在线观看| 中文字幕v亚洲ⅴv天堂| 97在线视频免费观看| 久久精品视频va| 欧美日韩在线观看视频小说| 精品国产成人在线| 亚洲第一区第二区| 欧美资源在线观看| 欧美黑人性视频| 亚洲人精品午夜在线观看| 亚洲男人天堂手机在线| 成人在线激情视频| yw.139尤物在线精品视频| 88国产精品欧美一区二区三区| 亚洲丝袜av一区| 国产裸体写真av一区二区| 久久色在线播放| 国产精品视频免费观看www| 国产亚洲aⅴaaaaaa毛片| 精品久久香蕉国产线看观看gif| 欧美日韩第一页| 国产成人97精品免费看片| 国产精品久久久久秋霞鲁丝| 久久久久久久久亚洲| 国产一区二区三区视频在线观看| 亚洲视频在线观看网站| 九九久久国产精品| 日韩禁在线播放| 一区二区三区久久精品| 久久影院模特热| 亚洲一区www| 国产精品久久久久福利| 国产一区二区三区免费视频| 97精品视频在线播放| 久久久久久久国产精品视频| 国产大片精品免费永久看nba| 亚洲成人动漫在线播放| 国产精品jvid在线观看蜜臀| 国产精品久久久久久久9999| 欧美亚洲视频在线观看| 中文字幕九色91在线| 欧美—级a级欧美特级ar全黄| 亚洲精品欧美极品|