public class StringTest { private int iterations; public static void main(String[] args) { StringTest test = new StringTest(20000); for(int i = 0; i < 10; i++) { test.concat(); test.append(); test.alloc(); test.setval(); } } public StringTest(int iterations) { this.iterations = iterations; } private void concat() { String foo = ""; long start = System.currentTimeMillis(); for(int i = 0; i < iterations; i++) { foo += "foo"; } System.out.println("String concat took "+(System.currentTimeMillis()-start)+" ms"); } private void append() { StringBuilder sb = new StringBuilder(); long start = System.currentTimeMillis(); for(int i = 0; i < iterations; i++) { sb.append("foo"); } System.out.println("String append took "+(System.currentTimeMillis()-start)+" ms"); } private void alloc() { byte[] z; long start = System.currentTimeMillis(); for(int i = 0; i < iterations; i++) { z=new byte[3*iterations]; } System.out.println("String alloc took "+(System.currentTimeMillis()-start)+" ms"); } private void setval() { byte[] z=new byte[60000]; long start = System.currentTimeMillis(); for(int i = 0; i < iterations; i++) { for(int j=0;j