java-字符串拼接几种方法的性能比较

超、凢脫俗 2024-02-19 15:15 143阅读 0赞

java-字符串拼接几种方法的性能比较

一、测试方法:
String.format();
MessageFormat.format();
StringBuilder();

二、测试结果:
性能:StringBuilder > MessageFormat > String

三、运行结果:
++++++++++++++++++++++++
times=100000
String.format 耗时:660
MessageFormat.format 耗时:247
StringBuilder 耗时:4
++++++++++++++++++++++++
times=1000000
String.format 耗时:2128
MessageFormat.format 耗时:829
StringBuilder 耗时:7
++++++++++++++++++++++++
times=10000000
String.format 耗时:13809
MessageFormat.format 耗时:5823
StringBuilder 耗时:77

四、测试代码:

  1. public static void main (String[] args){
  2. int[] arr = new int[]{100000,1000000,10000000};
  3. long begin=0;
  4. long end=0;
  5. for(int item:arr){
  6. System.out.println("++++++++++++++++++++++++");
  7. System.out.println("times="+item);
  8. //String.format
  9. begin = System.currentTimeMillis();
  10. for(int i=0;i<item;i++){
  11. String s = String.format("%s,%s,%s,%s","1111","2222","3333","4444");
  12. }
  13. end = System.currentTimeMillis();
  14. System.out.println("String.format 耗时:"+(end-begin));
  15. //MessageFormat
  16. begin = System.currentTimeMillis();
  17. for(int i=0;i<item;i++){
  18. String s = MessageFormat.format("{0},{1},{2},{3}","1111","2222","3333","4444");
  19. }
  20. end = System.currentTimeMillis();
  21. System.out.println("MessageFormat.format 耗时:"+(end-begin));
  22. //stringformat
  23. begin = System.currentTimeMillis();
  24. StringBuilder sbd;
  25. for(int i=0;i<item;i++){
  26. sbd = new StringBuilder();
  27. String s = sbd.append("1111").append(",")
  28. .append("2222").append(",")
  29. .append("3333").append(",")
  30. .append("4444").toString();
  31. }
  32. end = System.currentTimeMillis();
  33. System.out.println("StringBuilder 耗时:"+(end-begin));
  34. }
  35. }

发表评论

表情:
评论列表 (有 0 条评论,143人围观)

还没有评论,来说两句吧...

相关阅读

    相关 字符串拼接方式

    \+ 号拼接 通过`+`拼接是最常见的拼接方式,这个应该算是最简单的一种方式了,但是很遗憾得玩告诉你,阿里巴巴在他们的规范里面之处不建议在 for 循环里面使用 “+”