第1个回答 2016-11-24
String 类型和StringBuffer的主要性能区别:String是不可变的对象, 因此在每次对String 类型进行改变的时候,都会生成一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,性能就会降低。
使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象并改变对象引用。所以多数情况下推荐使用 StringBuffer ,特别是字符串对象经常改变的情况下。
简单来说就是:
比如你用String:
String str = "abc";
这里你在定义完这个str后,这个str的内容就不能在改变了。
但是你要是用下面的:
StringBuilder str = new StringBuilder();
str.append("abc");
str.append("def");
这都是可以的。
至于StringBuffer和StringBuilder是一样的,只不过前者是线程安全的后者不是。本回答被提问者采纳