由于在实际项目中经常会打log,这 就要用到字符串拼接, 本文测试了JAVA中的四种字符串拼接方法的性能。
1.使用“+”拼接字符串
public static String f1(String p1, String p2, String p3){ return "["+p1+"]["+p2+"]["+p3+"]"; }
2.使用StringBuilder拼接字符串
public static String f2(String p1, String p2, String p3){ StringBuilder sb = new StringBuilder(); sb.append("[").append(p1).append("]"); sb.append("[").append(p2).append("]"); sb.append("[").append(p3).append("]"); return sb.toString(); }
3.使用String.format拼接字符串
public static String f3(String p1, String p2, String p3){ return String.format("[%s][%s][%s]", p1, p2, p3); }
4.使用MessageFormat.format拼接字符串
public static String f4(String p1, String p2, String p3){ return MessageFormat.format("[{0}][{1}][{2}]", p1, p2, p3); }
测试:
public static void main(String[] args) { int count = 100000; String bigStr = "2015-11-23 18:51:15,661 [nioEventLoopGroup-2-1] ERROR test_t1 [] - [test_t1][ChannelHandler_exceptionCaught]远程主机强迫关闭了一个现有的连接。"; long start = System.currentTimeMillis(); for(int i=0; i<count;i ++){ f1("11111", "222222", bigStr); } long end = System.currentTimeMillis(); System.err.println("f1 : " + (end - start)); start = System.currentTimeMillis(); for(int i=0; i<count;i ++){ f2("11111", "222222", bigStr); } end = System.currentTimeMillis(); System.err.println("f2 : " + (end - start)); start = System.currentTimeMillis(); for(int i=0; i<count;i ++){ f3("11111", "222222", bigStr); } end = System.currentTimeMillis(); System.err.println("f3 : " + (end - start)); start = System.currentTimeMillis(); for(int i=0; i<count;i ++){ f4("11111", "222222", bigStr); } end = System.currentTimeMillis(); System.err.println("f4 : " + (end - start)); }
测试结果:(单位毫秒)
f1 : 18
f2 : 40
f3 : 386
f4 : 134
结论:使用“+”拼接字符串性能最好,使用String.format性能最差,所以还是老老实实用“+”来拼字符串吧,虽然难看点
相关推荐
从字符串中查找字符出现次数的方法和性能对比
有两串字符串,现在把里面不同的内容标记出来。 新增的修改的删除的都有标识
java 字符串按单词反转不同方法对比
用于测试java字符串几种连接方式的效率,主要包括四类对比测试:1,StringBuffer连接,2,String的Format连接,3,String相加连接,4,StringBuffer的append串起来连接。测试结果如下: String Buffer: 580ms String...
后台Springboot 前台Vue3 + element plus实现,适合小白熟悉相关技术及自定义添加自己喜欢的功能
主要给大家介绍了关于java中拼接字符串的5种方法效率对比的相关资料,文中通过示例代码和图片介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
改文档主要叙述js点击事件传递参数,参数类型,有案例有注释 字符串拼接,有案例,有各种拼接方法对比及各类数据类型的案例。
编写程序:从键盘上输入一个包含10个字符的字符串,把该字符串与程序中给定的字符串("bacdbcabca") //依次比较,统计两个字符串对应字符相等的数目。然后输出从键盘上输入的字符串, //并把两个字符串中对应字符不...
主要介绍了java字符串相似度算法,是Java实现比较典型的算法,具有一定参考借鉴价值,需要的朋友可以参考下
NULL 博文链接:https://mingren135.iteye.com/blog/2410538
两字符串比较返回重复个数,java的,课后一作业,随便写写
概括了Java,C,PHP,Python四大计算机编程语言在字符串操作方从定义赋值到写入文件等22个大的方面共...
java调用本地dll的几种方法性能对比测试。 JNA消耗的总时间(ms):5406 bridj消耗的总时间(ms):984 JNI消耗的总时间(ms):47 包含c++源码和java源码,部署和使用方法。在win7和winxp下测试用过。 部分源码是...
字符串对比,输入字符串即可得到对比结果,对比依据字符相似程度
字符串和数组有很多的相同之处,它们的方法众多,且相似度很高;但它们又有不同之处,字符串是不可变值,于是可以把其看作只读的数组。本文将对字符串和数组的类似方法进行比较 可索引 ECMAScript5定义了一种访问...
字符串对比验证工具.rar字符串对比验证工具.rar字符串对比验证工具.rar字符串对比验证工具.rar字符串对比验证工具.rar字符串对比验证工具.rar字符串对比验证工具.rar字符串对比验证工具.rar字符串对比验证工具.rar...
字符串比较处理宏字符串比较处理宏字符串比较处理宏字符串比较处理宏
Java三种处理字符转占位符及其时间性能的对比
javascript中数组和字符串的方法对比_.docx
Java NIO与IO性能对比分析.pdf