一直以来只知道StringBuffer是线程安全的,StringBuilder是线程不安全的,
所以通常情况下使用StringBuilder,这样可以提升效率!!!
今天由于想起StringBuilder跟StringBuffer也都是使用了建造者模式的方式进行操作的,
看了下两者的源码!发现原来最根本的区别
只在于一个地方就是synchronized关键字上!!
两者都是实现了java.io.Serializable, CharSequence的序列化接口,
然后实现了 AbstractStringBuilder的抽象方法,
本质上的区别在于
StringBuffer:
StringBuilder:
同时都是实现了builder的方式,所以追加方式,插入方式等等都是一样的!线程安全不安全的本质区别仅在于一个关键字上:synchronized!!