推荐使用StringBuilder,因为StringBuilder拼接字符串的效率更高
public class Demo_String_StringBuilder {
@Test
public void GetStringResult(){
long start = System.currentTimeMillis();
String s = "";
for (int i = 1; i <= 100000; i++){
s+=i;
}
long end = System.currentTimeMillis();
System.out.println("String的执行时间是:" + (end - start));
}
@Test
public void GetStringBuilderResult(){
long start = System.currentTimeMillis();
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= 100000; i++){
sb.append(i);
}
long end = System.currentTimeMillis();
System.out.println("StringBuilder的执行时间是:" + (end - start));
}
@Test
public void GetStringBufferResult(){
long start = System.currentTimeMillis();
StringBuffer sbf = new StringBuffer();
for (int i = 1; i <= 100000; i++){
sbf.append(i);
}
long end = System.currentTimeMillis();
System.out.println("StringBuffer的执行时间是:" + (end - start));
}
}
public class Demo1_String {
//string类比较特殊,直接写一个双引号""就是创建了一个对象
public static void main(String[] args) {
String s = "abc";
s = "def";//s只是记录了一个新对象的地址值,对象"abc"本质没有发生任何变化
System.out.println(s);
}
}
public class Demo2_StingBuilder {
public static void main(String[] args) {
//StingBuilder:字符序列可变,字符串的缓冲区(提高效率)
StringBuilder sb = new StringBuilder("1234567890");
sb.delete(0,2);
System.out.println(sb);
}
}
如非对安全有特别需要, 日常拼接String即可, 如果数量比较大,需要高效处理,建议选择效率高的StringBuilder. 考虑线程安全可以使用StringBuffer.
String拼接:
对比StringBuilder拼接:
本文由 Alicyu 创作,如果您觉得本文不错,请随意赞赏
采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
原文链接:https://www.alicyu.com/archives/string
最后更新:2019-10-18 14:56:52
Update your browser to view this website correctly. Update my browser now