"..." +"..." 直接字面值的操作最快,因为 jvm 直接将其解释为 1个字符串
String 对象 的操作 比较耗费时间,
StringBuilder 还可以,非线程安全的
StringBuffer 还行,线程安全,比 StringBuilder 慢点,
大多数情况下,效率上:
"..." + "..." > StringBuilder > StringBuffer > String对象+String对象
测试类:
package test;
public class StringAddTest {
private final static int repeatCount = 10000000;
public void testStringDirect() {
long begin = System.currentTimeMillis();
for (int i = 0; i < repeatCount; i++) {
String s = "abc" + "_opq_" + "xyz";
}
long over = System.currentTimeMillis();
System.out.println("\"...\"+\"...\" 直接相加:" + (over - begin) + " millseconds ");
}
public void testStringBuffer() {
long begin = System.currentTimeMillis();
for (int i = 0; i < repeatCount; i++) {
StringBuffer s = new StringBuffer();
s.append("abc").append("_opq_").append("xyz");
}
long over = System.currentTimeMillis();
System.out.println("StringBuffer 的 append() : " + (over - begin) + " millseconds ");
}
public void testStringBuilder() {
long begin = System.currentTimeMillis();
for (int i = 0; i < repeatCount; i++) {
StringBuilder s = new StringBuilder();
s.append("abc").append("_opq_").append("xyz");
}
long over = System.currentTimeMillis();
System.out.println("StringBuilder 的 append() : " + (over - begin) + " millseconds ");
}
public void testStringObject() {
long begin = System.currentTimeMillis();
for (int i = 0; i < repeatCount; i++) {
String s1 = "abc";
String s2 = "_opq_";
String s3 = "xyz";
String s = s1 + s2 + s3;
}
long over = System.currentTimeMillis();
System.out.println("String 对象 相加, 直接相加:" + (over - begin) + " millseconds ");
}
public static void main(String[] args) {
StringAddTest st = new StringAddTest();
st.testStringDirect();
st.testStringBuffer();
st.testStringBuilder();
st.testStringObject();
}
}
分享到:
相关推荐
String,StringBuffer,StringBuilder区别。几乎所有的应用开发都离不开操作字符串,理解字符串的设计和实现以及相关 工具如拼接类的使用,对写出高质量代码是非常有帮助的
String、StringBuilder和StringBuffer的区别 String、StringBuilder和StringBuffer的区别 String、StringBuilder和StringBuffer的区别
String,StringBuilder,StringBuffer
String StringBuffer和StringBuilder 区别之源码解析 从源码角度简单对它们之间的区别进行了验证
String ,StringBuffer与StringBuilder的区别
介绍了String、StringBuffer、StringBuilder的使用方法,以及理论知识
String、StringBuffer 和 StringBuilder 的区别 碎碎念 简单认识这三个对象 String StringBuffer StringBuilder 深入理解 String、StringBuilder、StringBuffer 从设计角度理解 String StringBuilder StringBuffer ...
StringBuffer:字符创变量 StringBuilder:字符创变量 从上面的名字可以看到,String是“字符创常量”,也就是不可改变的对象。对于这句话的理解你可能会产生这样一个疑问 ,比如这段代码:
简单的介绍了String、StringBuffer和StringBuilder的区别
String及StringBuffer和StringBuilder的区别
stringbuilder用法 String、StringBuilder、StringBuffer 用法比较String、StringBuilder、StringBuffer 用法比较String、StringBuilder、StringBuffer 用法比较String、StringBuilder、StringBuffer 用法比较String...
string,stringbuffer,stringbuilder
string,stringBuffer,stringBuilder
StringBuffer和StringBuilder类的用法基本相同,但StringBuilder类的效率更高,因为它不是线程安全的; 二、StringBuffer的示例 // 创建一个空的StringBuffer对象 StringBuffer sb = new StringBuffer(); // 向...
javase部分String的相关基础知识,String的构造方法总结比较以及各自的应用场景(代码举例),常用的容器类StringBuilder和StringBuffer的关系比较(图示)以及两者的区别联系和具体哪中场景下用哪个类。
StringBuilders 概述 建立String的简单类型。 用法如下: using StringBuilders sb = StringBuilder () append! (sb, " First string " ) append! (sb, " Second string " ) s = String (sb) 与使用IOBuffer相比...
给大家简单介绍下C#中String StringBuilder StringBuffer三个类的用法,需要的的朋友参考下吧
对于很多Java行业的菜鸟来说,弄清楚String;StringBuffer;StringBuilder三者之间的区别是很有必要的,很多面试面试官都会问到这个知识点。集合网络上很多牛人的各种经典分析的总结,花了两个小时概括总结得出了现在...
在Android/Java开发中,用来处理字符串常用的类有3种: String、StringBuilder、StringBuffer。 它们的异同点: 1) 都是 final 类, 都不允许被继承; 2) String 长度是不可变的, StringBuffer、...
目录StringStringBuffer与StringBuilder总结 String ...StringBuffer与StringBuilder 这两者基本相似,都是可变字符串对象,主要区别为线程是否安全。 总结 最后,引用菜鸟教程下的总结以及相关评论: S