String 是不可变类,String对象一旦被创建,其值将不能被改变。
StringBuffer是可变类,当对象被创建后,仍然可以对其值进行修改。
什么时候使用 String?
由于 String 是可变类,因此,适合在需要被共享的场合中使用,而当一个字符串常常需要被修改时,最好使用 StringBuffer 来实现。如果使用 StringBuffer 多了很多附加的操作,同时会生成很多无用的对象,由于这些无用的对象会被垃圾回收器回收,所以会影响程序的性能。在规模小的项目中这种影响很小,但是在一个规模大的项目中,这会给程序的运行效率带来很大的负面影响。
StringBuilder 类不是线程安全的。如果不是多线程的程序,可以使用StringBuilder,效率更高。