String、StringBuffer 和StringBuilder的比较
- StringBuilder 相 String Buffer 非常类似,均代表可变的宇符序列,而且方法也一样
- String:不可变字符序列,效率低,但是复用率高。
- StringBuffer:可变字符序列、效率较高(增删)、线程安全、一般用于多线程
- StringBuilder:可变字符序列、效率最高、线程不安全、用于单线程
String 使用注意说明:
string s="a"; //创建了一个字符串
s+="b"; //实际上原来的"a"字符串对象已经丟弃了,现在又产生了一个字符串s+"b"(也就是"ab")。如果多次执行这些改变串内容的操作,会导致大量副本字符串对象存留在内存中,降低效率。如果这样的操作放到循环中,会极大影响程序的性能 => 结论:如果我们对String 做大量修改,建议不要使用String。
String、StringBuffer 和StringBuilder的选择
- 如果字符串存在大量的修改操作,一般使用StringBuffer 或 StringBuilder
- 如果字符串存在大量的修改操作,并在单线程的情况,使用 StringBuilder
- 如果字符串存在大量的修改操作,并在多线程的情况,使用 StringBuffer
- 如果字符串很少修改,被多个对象引用,使用String,比如配置信息等
StringBuilder的方法使用和StringBuffer是一样的