stringbuffer和stringbuilder的主要区别就是:线程安全不同,缓冲区不同,性能不同stringbuffer适用于多线程场合而stringbuilder适用与单线程场合。
stringbuffer和stringbuilder的区别
线程安全:
stringbuffer是线程安全的,stringbuilder是线程不安全的。因为stringbuffer的所以公开方法都是被synchronized修饰的,而stringbuilder没有被synchronized修饰。
缓冲区:
StringBuffer 每次获取 toString 都会直接使用缓存区的 toStringCache 值来构造一个字符串。
StringBuilder 则每次都需要复制一次字符数组,再构造一个字符串。所以, StringBuffer 对缓存区优化,不过 StringBuffer 的这个toString 方法仍然是同步的。
性能:
StringBuffer 是线程安全的,它的所有公开方法都是同步的,StringBuilder 是没有对方法加锁同步的,所以,StringBuilder 的性能要远大于 StringBuffer。
stringbuffer偏重于对字符串的操作如,
追加(append),删除,插入