IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    String、StringBuffer和StringBuilder类的区别

    月小升发表于 2023-03-11 06:29:33
    love 0
    String 是个final class不可变字符串,拼接性能低,频繁操作,性能影响 StringBuffer 解决大量字符串拼接,线程安全 StringBuilder 在StringBuffer基础上加个线程不安全,效率最高,优先考虑 线程安全: StringBuffer:线程安全 StringBuilder:线程不安全 速度: 一般情况下,速度从快到慢为 StringBuilder > StringBuffer > String,当然这是相对的,不是绝对的。 使用环境: 操作少量的数据使用 String。 单线程操作大量数据使用 StringBuilder。 多线程操作大量数据使用 StringBuffer。 问题:为何String设计成不可变 1.String 不可变,所以用到字符串常量池,String s1 = 'abc'; 和 String s2 = 'abc'; 指向同一个常量池,效率更高 2.多线程安全 3.String的hashCode被缓存起来,用于HashMap这种计算hashCode的速度更快 问题:为何StringBuilder不安全 相对StringBuffer,StringBuilder没有在方法上使用 … Continue reading →


沪ICP备19023445号-2号
友情链接