专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

StringBuffer类和StringBuilder类

StringBuffer类和StringBuilder类

三者比较

String

  • 不可变字符序列
  • 底层用char[]存储

StringBuffer

  • 可变的字符序列
  • 线程安全的
  • 效率低
  • 底层结构使用char[]存储
  • 扩容问题
    • 如果要添加的底层数组盛不下,需要扩容底层的数组
    • 默认情况下扩容为原来容量的2倍 + 2 ,同时将原有的数组元素复制到新的数组中

StringBuilder

  • 可变的字符序列
  • 线程不安全
  • 效率高
  • 源码分析
    • 和StringBuffer源码一样,只是线程不安全了而已

三者效率比较

StringBuilder > StringBuffer > String

StringBuffer类

分析

  • StringBuffer stringBuffer = new StringBuffer();
    • 在底层创建了一个长度为16的数组:

      char[] value = new char[16]

    • 添加数据后:

      stringBuffer.append(‘a’);

      • 其底层为:value[0] = ‘a’;
  • StringBuffer stringBuffer = new StringBuffer(“abc”);

    此时底层:

    char[] value = new char[”abc”.length + 16]

底层代码如图

70_1.png

常用方法

  • str1.append():用于字符串拼接

    70_2.png

  • str1.delete(start,end):删除指定位置的内容(被删除的内容左闭右开)

    70_3.png

  • str1.replace(start,end,str):把[start,end]位置替换成str(左闭右开)

    之前的str1为“abc11”

    70_4.png

  • str1.insert(offset,b):在指定位置插入XXX(插入不是替换,只是位置后移)

    之前的str1为“abc11”

    70_5.png

  • str1.reverse():当前字符串序列逆转

    之前的str1为“abc11”

    70_6.png

  • str1.indexOf(str):返回str在当前字符串首次出现的位置
  • str1.substring(start, end):返回从strat开始到end索引结束的左闭右开区间的子字符串

    之前的str1为“abc11”

    70_7.png

StringBuilder类

  • 底层源码和StringBuffer源码一样,只是线程不安全了而已
  • 常用的方法与StringBuffer相同,String一些方法也可以使用(可总结为增删改查插)

    • append(XXX)

    • delect(int start,int end)

    • setCharAt(int n,char ch)——–修改一个字符

      replace(int start,int end,String str)——-修改换成一个新的字符串

    • charAt(int n)

    • insert(int offset,XXX)

    • 长度

      length

StringBuilder(StringBuffer)与String之间的数据转换

StringBuilder/StringBuffer—->String转换

  • toString()方法

    70_8.png

  • 通过String类中的构造将一个StringBuffer类转换为String类

    70_9.png

String—->StringBuilder/StringBuffer转换

  • 利用构造函数
    70_10.png
  • 调用append方法
    70_11.png
未经允许不得转载:搜云库技术团队 » StringBuffer类和StringBuilder类

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们