Advertisement
Guest User

String concatenation vs String Builder in java

a guest
Aug 27th, 2010
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.64 KB | None | 0 0
  1.  
  2. public class StringTest
  3. {
  4.  
  5.     private int iterations;
  6.  
  7.     public static void main(String[] args) {
  8.         StringTest test = new StringTest(20000);
  9.         for(int i = 0; i < 10; i++) {
  10.             test.concat();
  11.             test.append();
  12.             test.alloc();
  13.             test.setval();
  14.  
  15.         }
  16.     }
  17.  
  18.     public StringTest(int iterations)
  19.     {
  20.         this.iterations = iterations;
  21.     }
  22.  
  23.     private void concat() {
  24.         String foo = "";
  25.         long start = System.currentTimeMillis();
  26.         for(int i = 0; i < iterations; i++)
  27.        {
  28.             foo += "foo";
  29.         }
  30.         System.out.println("String concat took "+(System.currentTimeMillis()-start)+" ms");
  31.     }
  32.  
  33.     private void append() {
  34.         StringBuilder sb = new StringBuilder();
  35.         long start = System.currentTimeMillis();
  36.         for(int i = 0; i < iterations; i++) {
  37.             sb.append("foo");
  38.         }
  39.         System.out.println("String append took "+(System.currentTimeMillis()-start)+" ms");
  40.     }
  41.  
  42.     private void alloc() {
  43.         byte[] z;
  44.  
  45.         long start = System.currentTimeMillis();
  46.         for(int i = 0; i < iterations; i++) {
  47.             z=new byte[3*iterations];
  48.  
  49.         }
  50.         System.out.println("String alloc took "+(System.currentTimeMillis()-start)+" ms");
  51.     }
  52.  
  53.     private void setval()
  54.     {
  55.         byte[] z=new byte[60000];
  56.  
  57.         long start = System.currentTimeMillis();
  58.         for(int i = 0; i < iterations; i++) {
  59.             for(int j=0;j<i*3;j++)
  60.                 z[j]=0;
  61.         }
  62.         System.out.println("String setval took "+(System.currentTimeMillis()-start)+" ms");
  63.     }  
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement