简介
本文介绍Java的String,StringBuffer,StringBuilder的区别。
String,StringBuffer,StringBuilder区别
| 项 | String | StringBuffer | StringBuilder |
| 可变性 | 不可变。 原因:value数组是final类型。因为不可变,所以每次操作生成新对象。 | 可变。 原因:其父类(AbstractStringBuilder)的value数组不是final类型 | 可变。 原因:其父类(AbstractStringBuilder)的value数组不是final类型 |
| 线程安全性 | 线程安全。 原因:value数组是final类型 | 线程安全。 原因:方法都用了synchronized。 (单线程时没必要用,因为加锁了,速度慢。) | 线程不安全。 (单线程时建议使用,因为没加锁,速度快。) |

请先 !