java 拼接字符串性能_java字符串拼接与性能分析详解
假設(shè)有一個(gè)字符串,我們將對(duì)這個(gè)字符串做大量循環(huán)拼接操作,使用”+”的話將得到最低的性能。但是究竟這個(gè)性能有多差?如果我們同時(shí)也把StringBuffer,StringBuilder或String.concat()放入性能測(cè)試中,結(jié)果又會(huì)如何呢?本文將會(huì)就這些問題給出一個(gè)答案!
我們將使用Per4j來計(jì)算性能,因?yàn)檫@個(gè)工具可以給我們一個(gè)完整的性能指標(biāo)集合,比如最小,最大耗時(shí),統(tǒng)計(jì)時(shí)間段的標(biāo)準(zhǔn)偏差等。在測(cè)試代碼中,為了得到一個(gè)準(zhǔn)確的標(biāo)準(zhǔn)偏差值,我們將執(zhí)行20個(gè)拼接”*”50,000次的測(cè)試。下面是我們將使用到的拼接字符串的方法:
代碼如下:
Concatenation Operator (+)
String concat method – concat(String str)
StringBuffer append method – append(String str)
StringBuilder append method – append(String str)
最后,我們將看看字節(jié)碼,來研究這些方法到底是如何執(zhí)行的。現(xiàn)在,讓我們先開始來創(chuàng)建我捫的類。注意為了計(jì)算每個(gè)循環(huán)的性能,代碼中的每段測(cè)試代碼都需要用Per4J庫進(jìn)行封裝。首先我們先定義迭代次數(shù)
代碼如下:
private static? final int? OUTER_ITERATION=20;
private static final int INNER_ITERATION=50000;
接下來,我們將使用上述4個(gè)方法來實(shí)現(xiàn)我們的測(cè)試代碼。
代碼如下:
String addTestStr = "";
String concatTestStr = "";
StringBuffer concatTestSb = null;
StringBuilder concatTestSbu = null;
for (int outerIndex=0;outerIndex
總結(jié)
以上是生活随笔為你收集整理的java 拼接字符串性能_java字符串拼接与性能分析详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 快排非递归_C++ 中快排的递
- 下一篇: java如何获得键值_如何在java中取