Jac*_*ang 2 java algorithm stringbuilder synchronized stringbuffer
我正在学习算法实现课程.我的老师提到了StringBuffer和StringBuilder,他说StringBuffer比StringBuilder更安全,因为在线程方面.真的吗?如果是这样,那意味着什么?我查了一下这个问题,很多答案都提到了同步.任何人都可以解释这意味着什么,以及如何使StringBuffer比StringBuilder更安全?
StringBuffer 所有方法都已同步.
来自java doc:
线程安全,可变的字符序列
同步是一个系统,用于将线程访问与代码部分同步,以便最多一个线程可以执行同步块.
如果您的代码不是多线程,或者只是StringBuffer您正在使用的代码不在线程之间共享使用StringBuilder.它更快.
从StringBuilder的javadoc:
一个可变的字符序列.此类提供与StringBuffer兼容的API,但不保证 同步.此类设计用作 StringBuffer的替代品, 用于单个线程使用字符串缓冲区的位置(通常情况下).在可能的情况下,建议首先使用此类优先于 StringBuffer,因为在大多数实现中它会更快.