String,StringBuilder和StringBuffer对比详解

String,StringBuilder和StringBuffer的比较

  1. StringBuilder和StringBuffer非常类似,均代表可变的字符序列,而且方法也一样
  2. String: 不可变字符序列,效率低,但是复用率高
  3. StringBuffer: 可变字符序列、效率较高(增删),线程安全
  4. StringBuilder:可变字符序列,效率较高,线程不安全
  5. String使用注意说明:
    • string s = "a";创建了一个字符串
    • s += "b";实际上原来的"a"字符串已经丢弃了,现在又产生了一个新的字符串,如果多次执行这些改变串内容的操作,会导致大量副本字符串对象存留在内存中,降低效率,如果这样的操作放到循环中,会极大影响程序的性能,因此如果是对String做大量修改,则不使用

String,StringBuilder和StringBuffer的选择

  • 如果字符串存在大量的修改操作,一般使用StringBuffer或StringBuilder
  • 如果字符串存在大量的修改操作,并在单线程的情况下,使用StringBuilder
  • 如果字符串存在大量的修改操作,并在多线程的情况下,使用StringBuffer
  • 如果字符串很少修改,被多个对象引用时,使用String,比如配置信息
posted @ 2021-05-12 22:05  mx_info  阅读(111)  评论(0)    收藏  举报