标签:
1.String是final类型的不可以被继承是不可变的
StringBuffer、StringBuilder是可以变的
2.速度 StringBuilder>StringBuffer>String
StringBuffer是线程安全的
StringBuidler是线程非安全的
String s1 = “This is only a” + “ simple” + “ test”; StringBuffer Sb = new StringBuilder(“This is only a”).append(“ simple”).append(“ test”);
Java Compiler直接把上述第一条语句编译为:
String s2 = “This is only a”;
String s3 = “ simple”;
String s4 = “ test”;
String s1 = s2 + s3 + s4;
3.使用策略
1)少量数据操作可以String;单线程操作用SringBuilder;多线程操作用StringBuffer
2)不要使用String的“+”来拼接,这样的性能很差;应该用下面的第二种:
String result = "";
for (String s : hugeArray) {
result = result + s;
}
StringBuilder sb = new StringBuilder();
for (String s : hugeArray) {
sb.append(s);
}
String result = sb.toString();
3)StringBuffer用在全局变量中;StringBuilder用在方法内部中
3)一般情况下直接用Stringbuffer,因为builder的性能最多提高10%-15%,除非确认不是运行在多线程下并且性能瓶颈是在buffer上。
String StringBuilder StringBuffer的区别
标签:
原文地址:http://www.cnblogs.com/zhengtu2015/p/4871259.html