测试String StringBuilder StringBuffer 的执行速度

来源:互联网 发布:九阴真经捏脸数据男 编辑:程序博客网 时间:2024/05/16 04:07
  1. package com.hzfuji.sdk.util;
  2. public class StringUtil {
  3.     
  4.     public static int TIMES = 20000;
  5.     public static String ADD_EDSTRING = "add";
  6.     
  7.     public static long compute(StringBuffer sb) {
  8.         long start = System.currentTimeMillis();
  9. //        System.out.println(Long.toString(start));
  10.         for (int i = 0; i < TIMES; i ++) {
  11.             sb.append(ADD_EDSTRING);
  12.         }
  13.         long end = System.currentTimeMillis();
  14. //        System.out.println(Long.toString(end));
  15.         return end - start;
  16.     }
  17.     
  18.     public static long compute(StringBuilder sb) {
  19.         long start = System.currentTimeMillis();
  20.         
  21.         for (int i = 0; i < TIMES; i ++) {
  22.             sb.append(ADD_EDSTRING);
  23.         }
  24.         long end = System.currentTimeMillis();
  25.         return end - start;
  26.     }
  27.     
  28.     public static long compute(String str) {
  29.         long start = System.currentTimeMillis();
  30.         
  31.         for (int i = 0; i < TIMES; i ++) {
  32.             str = str + ADD_EDSTRING;
  33.         }
  34.         long end = System.currentTimeMillis();
  35.         return end - start;
  36.     }
  37.     
  38.     public static long compute() {
  39.         long start = System.currentTimeMillis();
  40.         String temp = null;
  41.         for (int i = 0; i < TIMES; i ++) {
  42.             temp = ADD_EDSTRING + ADD_EDSTRING;
  43.         }
  44.         long end = System.currentTimeMillis();
  45.         return end - start;
  46.     }
  47.     
  48.     public static void main(String[] args) {
  49.         String str = "test";
  50.         
  51.         StringBuffer stringBuffer = new StringBuffer(str);
  52.         
  53.         StringBuilder stringBuilder = new StringBuilder(str);
  54.         
  55.         print("String");
  56.         
  57.         print(Long.toString(compute(str)));
  58.         
  59.         print("String Constant");
  60.         
  61.         print(Long.toString(compute()));
  62.         
  63.         print("StringBuffer");
  64.         
  65.         print(Long.toString(compute(stringBuffer)));
  66.         
  67.         print("StringBuilder");
  68.         
  69.         print(Long.toString(compute(stringBuilder)));
  70.         
  71.     }
  72.     
  73.     private static void print(String... strs) {
  74.         for (String str : strs) {
  75.             System.out.println(str);
  76.         }
  77.     }
  78. }

 

 

String
8266
String Constant
31
StringBuffer
16
StringBuilder
0