StringBufferとStringBuilder
JavaDocには単スレッドでは
StringBuilderを積極的に使えと書いてあるが処理速度の違いがはっきりしない。
スレッドセーフが実装されていないので単スレッドではパフォーマンスが高いらしい。
マルチスレッドから文字列操作を行うのであればStringBufferクラスを使う。
単一スレッドであれば StringBuilderクラスを使う。
StringBuffer buffer = new StringBuffer(); StringBuilder builder = new StringBuilder(); StopWatch stopWatch = new StopWatch(); stopWatch.start(); for (int i = 0; i <= 1000000; i++) { buffer.append("Example"); } stopWatch.stop(); System.out.println( "StringBuffer Append Test 10kth : " + stopWatch.getTime() + "ms"); stopWatch.reset(); stopWatch.start(); for (int i = 0; i <= 10000; i++) { builder.append("Example"); } stopWatch.stop(); System.out.println( "StringBuilder Append Test 10kth : " + stopWatch.getTime() + "ms");