StringBuilder、String、StringBuffer之间的联系与区别?

一、不同点:

  1. 可变性
    String不可变 StringBuffer,StringBuilder可变
  2. 线程安全
    String不可变可称为线程安全 StringBuffer线程安全 StringBuilder非线程安全
  3. 性能
    在大量字符串拼接操作中String最差
    在非线程安全环境中StringBuilder性能要比StringBuffer好
    二、相似点
  4. 实现 底层均为数组实现
  5. 继承及修改 均为final修饰,不可继承修改
    三、使用策略
  6. 基本原则
    少量数据用String,单线程大量数据用StringBuilder,多线程大量用StringBuffer
  7. 大量数据操作中不用String类中”+”操作
    影响性能,使用StringBuilder/StringBuffer的append进行操作(Java中一条比较重要的优化原则)
  8. 数据量大时,指定StringBuffer/StringBuilder的容量
    默认capacity=16,会影响性能
    4.使用范围
    StringBuilder一般在局部变量中使用 StringBuffer一般在全局变量中使用,线程安全
    String在操作小的前提下都可以
  9. 相同情况下,StringBuilder相比StringBuffer能获得10%-15%的性能提升
    非线程安全下可使用StringBuilder提升性能
发布了17 篇原创文章 · 获赞 0 · 访问量 1027

猜你喜欢

转载自blog.csdn.net/weixin_41980692/article/details/105720989