StringBuffer 和 StringBuilder 区别

1、StringBuffer 与 StringBuilder 中的方法和功能完全是等价的,
2、只是StringBuffer 中的方法大都采用了 synchronized 关键字进行修饰,因此是线程安全的,
而 StringBuilder 没有这个修饰,可以被认为是线程不安全的。
3、在单线程程序下,StringBuilder效率更快,因为它不需要加锁,不具备多线程安全
而StringBuffer则每次都需要判断锁,效率相对更低

StringBuffer特征:
1.底层基于 char[ ]实现,没有 final 修饰,初始容量为 16,每次扩容为原
来的 2n+2。
2.线程安全的,大多数方法有 synchronized 修饰。
3.toString()方法缓存了 char[ ]。
StringBuilder特征:
1.底层基于 char[ ]实现,且被 final 修饰。
2.java 用“+”连接字符串,实质上是 new 了一个 StringBuilder,然后通过 append
方法连接,最后 toString。

猜你喜欢

转载自blog.csdn.net/m0_37383866/article/details/87811712
今日推荐