测试String StringBuilder StringBuffer 的执行速度

本文通过对比String、StringBuffer、StringBuilder在进行大量字符串拼接操作时的性能表现,展示了不同字符串类型在Java中的效率差异。实验结果显示,在循环拼接场景下,StringBuilder提供了最优的性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值