因为最近在研究线程安全和相关的可变对象和不可变对象的内容。
查看了下 StringBuffer 的源代码。
StringBuffer 的官方解释是,一个线程安全可变序列的字符串。StringBuffer 与 String 是一样的,但是是线程安全的。你可以在任何时候会存储一些字符串。有关 StringBuffer 的长度和存储的字符串,你可以使用 StringBuffer 提供的一些方法来进行修改。
StringBuffer 提供进行修改的这些方法是线程安全的。
StringBuffer 为一些方法进行了必要的同步来保证线程的安全。
通过源代码的查看,你可以明显的看到是使用 synchronized 关键字来通过线程同步来实现线程安全的。
StringBuilder 不是线程安全的,因为没有在代码中使用同步。
从对代码的研究就可以看出来 StringBuilder 是线程不安全的。可以根据需要在开发中使用。