「每天一道面试题」String和StringBuilder、StringBuffer的区别

「每天一道面试题」String和StringBuilder、StringBuffer的区别

Java提供了两种类型的字符串:不可变字符串和可变字符串,分别是String和StringBuffer/StringBuilder,其中String引用的字符串内容不能被改变,而StringBuffer/StringBuilder表示的字符串对象可以进行修改操作。

StringBuffer是JDK1.0增加的,而StringBuilder是JDK5引入的,StringBuilder的字符串操作方法和StringBuffer相同。区别在于StringBuffer是线程安全的,它的字符串操作方法使用synchronized修饰;StringBuilder一般在单线程环境下使用,因为它的所有方法没有被synchronized修饰,所以在多线程环境下需要考虑线程安全问题,但是它的效率比StringBuffer要高。