publicstaticintexecuteSometime(int kind, int num)throws InterruptedException { Thread.sleep(2000);int sum = 0;for (int i = 0; i < num + 5; i++) {long begin = System.currentTimeMillis(); switch (kind){case1: useString();break;case2: useStringBuilder();break;case3: useStringSpliceOneStr();break;case4: useStringBuilderSpliceOneStr();break;default:return0; } long end = System.currentTimeMillis(); if(i > 5){ sum += (end - begin); } }return sum / num;}
主方法
publicclassStringTest{publicstaticfinalint CYCLE_NUM_BIGGER = 10_000_000;publicstaticfinalint CYCLE_NUM_LOWER = 10_000;publicstaticfinal String str1 = "张三";publicstaticfinal String str2 = "李四";publicstaticfinal String str3 = "王五";publicstaticfinal String str4 = "赵六"; publicstaticvoidmain(String[] args)throws InterruptedException {int time = 0;int num = 5; time = executeSometime(1, num); System.out.println("String拼接 "+ CYCLE_NUM_BIGGER +" 次," + num + "次平均时间:" + time + " ms"); time = executeSometime(2, num); System.out.println("StringBuilder拼接 "+ CYCLE_NUM_BIGGER +" 次," + num + "次平均时间:" + time + " ms"); time = executeSometime(3, num); System.out.println("String拼接单个字符串 "+ CYCLE_NUM_LOWER +" 次," + num + "次平均时间:" + time + " ms"); time = executeSometime(4, num); System.out.println("StringBuilder拼接单个字符串 "+ CYCLE_NUM_LOWER +" 次," + num + "次平均时间:" + time + " ms"); }}