String类是不可变类,一旦一个String对象被创建以后,包含在这个对象中的字符序列不可改变,除非该对象被销毁。
StringBuffer对象代表一个字符序列可变的字符串,当一个StringBuffer创建以后,通过append(), insert(), reverse(), setCharAt(), setLength()等方法可以改变这个字符串对象的字符序列。当StringBuffer生成 了最终想要的字符串,就可以调用toString()方法转化成String对象。
StringBuilder跟StringBuffer一样,也是字符序列可变的字符串,其提供的方法与StringBuffer提供的方法基本一样,唯一区别是StringBuffer是线程安全的,而StringBuilder不是线程安全的,因此StringBuilder的效率更高。
线程安全的概念:任何时刻都只有一个线程去访问临界资源。