image

编辑人: 人逝花落空

calendar2025-02-27

message7

visits937

说说String、StringBuffer与StringBuilder之间区别

分析&回答

String、StringBuilder与StringBuffer不同点

标题StringStringBufferStringBuilder
基本表现String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量优先的内存空间StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。每个StringBuffer对象都有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容量,当字符串大小超过容量时,会自动增加容量可变类,速度更快
是否可变不可变可变可变
是否线程安全线程安全线程安全线程不安全
使用注意多线程操作字符串单线程操作字符串

反思&扩展

如何选择String、StringBuffer与StringBuilder?

  • 运行效率: StringBuilder>StringBuffer>String
  • 如果不涉及线程安全的情况下,尽量使用StringBuilder执行字符串相加的处理。

StringBuilder与StringBuffer共同点

  • StringBuilder与StringBuffer有公共父类AbstractStringBuilder(抽象类)
  • StringBuilder、StringBuffer的方法都会调用AbstractStringBuilder中的公共方法,如super.append(...)。只是StringBuffer会在方法上加synchronized关键字,进行同步。

喵呜面试助手: 一站式解决面试问题,你可以搜索微信小程序 [喵呜面试助手] 或关注 [喵呜刷题] -> 面试助手 免费刷题。如有好的面试知识或技巧期待您的共享!

创作类型:
原创

本文链接:说说String、StringBuffer与StringBuilder之间区别

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share