StringBuffer关键点:
1.简单认为.append()效率好于“+"是错误的。
2.不要使用new创建String。
3。注意.intern()的使用。
4.在编译期能够确定字符串值的情况下,使用”+“效率最高。
5.避免使用”+=“来构造字符串
6.在声明StringBuffer对象的时候,指定合适的capacity,不要使用默认值16.
7,注意以下二者的区别,后者开辟了两个内存段。
String s="a"+"b";
String s="a";
s+="b";
String是一个支持非可变性的类,这种类的特点是状态固定(不存在任何改变对象的方法 )。从而是线程安全的。
所以当执行tmp+="x"的时候,实际上是另外创建了一个对象,而tmp原来指向的那个对象 就成了垃圾,这样的话一个循环就会产生n个对象,从而造成内存的浪费。