首页 > 代码库 > StringBuffer 与 StringBuilder的区别

StringBuffer 与 StringBuilder的区别

StringBuffer 始于 JDK 1.0
StringBuilder 始于 JDK 1.5

StringBuffer 与 StringBuilder中的方法和功能完全是等价的,只是
StringBuffer 中的方法大都采用了 synchronized 关键字进行修饰,因
此是线程安全的,而 StringBuilder 没有这个修饰,可以被认为是线程
不安全的。

从 JDK 1.5 开始,带有字符串变量的连接操作(+),JVM 内部采用的是
StringBuilder 来实现的,而之前这个操作是采用 StringBuffer 实现的。

为了达到线程安全的目的在一定程度上会降低程序的性能。
所以在单线程中,StringBuilder的性能要比StringBuffer高。
多线程为了线程安全需要采用StingBuffer。
其实在线程不考虑的情况下,要是程序对性能的要求不高,没必要在意两者的区别。