StringBuilder和StringBuffer的区别

今天上午在工作的时候,听到一个同事在问,StringBuilder和StringBuffer有什么区别?另一同事回答:我也不知道,我一直在用StringBuffer。

本人也不太理解这二者区别,特在网上查了一下资料,以作记录。

 

StringBuffer 与 StringBuilder 中的方法和功能完全是等价的,只是

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

StringBuffer 始于 JDK 1.0
StringBuilder 始于 JDK 1.5

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

个人理解,

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

posted @ 2013-04-10 14:03  魏朝辉  阅读(131)  评论(0编辑  收藏  举报