String是不可变的对象,每一次对String类型进行改变时其实都等同于生成一个新的String对象,然后将指针指向新的String对象。
因此如果经常改变字符串内容,最好不要用String。每次生成对象都会对系统性能产生影响,而且当内存中无引用的对象多了以后,JVM的垃圾收集器就会开始工作,程序运行速度就会变慢。
StringBuffer类型,每次对字符串内容进行操作都会对StringBuffer对象本身进行操作,而不是生成新的对象。
当字符串对象经常改变时,推荐使用StringBuffer。
StringBuffer时线程安全的,方法都带有Synchronized关键字。
StringBuilder与StringBuffer类似,但不是线程安全的。