StringBuffer
和StringBuilder
的主要区别是什么?在决定使用其中任何一个时是否存在性能问题?
StringBuffer
和StringBuilder
的主要区别是什么?在决定使用其中任何一个时是否存在性能问题?
StringBuffer 中的每个方法都是同步的,因此一次只允许一个线程操作 StringBuffer 对象。这会增加线程的等待时间并创建性能问题,为了解决这个问题,SUN 在 1.5 版本中引入了 StringBuilder。
StringBuilder比StringBuffer更快,因为StringBuffer是同步的,StringBuffer有自己的char[]缓存区,就像BufferedInputStream一样。
StringBuffer更慢的另一个原因是每次添加或删除时都会更新变量缓冲区。我进行了测试,不知何故,如果我删除超过一万次,StringBuffer的remove方法会更快。