String、StringBuffer、StringBuilder

  • String、StringBuffer、StringBuilder三者的异同
  • StringBuffer、StringBuilder的一些常用方法

String、StringBuffer、StringBuilder三者的异同

  1. String:不可变的字符序列;
  2. StringBuffer:可变的字符序列,线程安全的,效率低。
  3. StringBuilder:可变的的字符序列,jdk5.0新增的,线程不安全,效率高。

相同点:底层都是用char[]型数组存储的。
不同点:

String str=new String();底层new了一个长度为0的char[]型数组//底层new了一个长度为16的char[]型数组
StringBuffer sb1=new StringBuffer()
StringBuilder sb2=new StringBuilder()//底层new了一个长度为16+abc的char[]型数组,即长度为19
//只有在初始化的时候这样操作,程序组添加的时候不在添加长度,除非扩容。
StringBuffer sb3=new StringBuffer("abc")
StringBuilder sb4=new StringBuilder("abc")

注意:

  1. 打印StringBuffer 和StringBuilder对象的长度时,计算的是有效长度,有几个元素长度就是几。
  2. 扩容问题 ,空间不够时,数组会自动调用底层的扩容函数进行扩容,默认扩容为原来的2倍+2,同时将原有数组的数据拷贝到新的数组中。
  3. 在实际开发中,如果我们一直需要添加很多次,就需要选用带参数数的方式来指定长度,避免在之后的程序中的扩容操作,影响效率。

StringBuffer、StringBuilder的一些常用方法

方法 作用
stringBuffer append(xxx) 提供了很多的append()方法,用于进行字符串拼接StringBuffer delete(int start,int end)
StringBuffer repLace(int start, int end,string str) 把[start,end)位置替换str
stringBuffer insert(int offset,xxx) 在指定位置插入xxx
StringBuffer reverse() 把当前字符序列逆转
public string substring(int start,int end) 返回一个从start开始到end索引结束的左闭右开区间的子串
public int Length( ) 计算有效长度
toString() 遍历

String、StringBuffer、StringBuilder三者的异同相关推荐

  1. String,StringBuffer,StringBuilder三者的异同

    String,StringBuffer,StringBuilder三者的异同:? String:不可变的字符序列;底层使用char[]存储(用final修饰) StringBuffer:可变的字符序列 ...

  2. Java学习20天 String 类 常用方法 String、StringBuffer、StringBuilder三者的异同

    String 类 String:字符串,使用一对""引起来表示. 1.String声明为finaL的,不可被继承 2.String实现了SerializabLe接口:表示字符串是支 ...

  3. 重温java中的String,StringBuffer,StringBuilder类

    不论什么一个系统在开发的过程中, 相信都不会缺少对字符串的处理. 在 java 语言中, 用来处理字符串的的类经常使用的有 3 个: String.StringBuffer.StringBuilder ...

  4. 浅谈 Java 字符串(String, StringBuffer, StringBuilder)

    我们先要记住三者的特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义 查看 API 会发现,String ...

  5. String, StringBuffer, StringBuilder之间的区别

    String与StringBuffer/StringBuilder之间的主要区别 1.String对象不可变, 如果修改会重新创建一个对象, 然后把值保存进去. StringBuffer/String ...

  6. java中 String StringBuffer StringBuilder的区别

    * String类是不可变类,只要对String进行修改,都会导致新的对象生成. * StringBuffer和StringBuilder都是可变类,任何对字符串的改变都不会产生新的对象. 在实际使用 ...

  7. String StringBuffer StringBuilder区别与联系

    String     StringBuffer     StringBuilder String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量 ...

  8. String StringBuffer StringBuilder的区别

    简单的事情做到极致也是一种能力. 首先,说一下目前我还没进行整理的情况下,我的理解: String 不可修改 修改后相当于又新创建创建一个字符串 比如: String a = "abc&qu ...

  9. Java中的String,StringBuffer,StringBuilder有什么区别?

    相信有很多同学都是经常使用String的,或者也或多或少的听说过StringBuffer,StringBuilder,那么在经常遇见的面试题中(标题),到底这三个的区别是什么呢?让我们来一探究竟! S ...

最新文章

  1. Java知多少(42)泛型通配符和类型参数的范围
  2. mxnet METRIC自定义评估验证函数
  3. my task is always searched based on employee responsible
  4. php考勤分析,php考勤系统
  5. 里面怎么模拟裂纹_警惕!你买的翡翠有裂纹吗?它能让翡翠的价值暴跌
  6. R7-7 寻找大富翁 (25 分)
  7. 机器视觉用c还是python_机器视觉_opencv-python环境搭建
  8. oracle11g 查看表,oracle11g查看,添加表空间
  9. JAVA基础--JAVA中的反射机制详解(转)
  10. 十大排序算法——二分插入排序法(C语言)
  11. 织梦php 文章采集规则,dede自带采集器的高阶技巧
  12. 记录mikrotik路由器的折腾过程
  13. xrd精修教程_XRD精修教程.pdf
  14. 流利阅读 2019.2.27 How sky-high rents forced people into imaginative alternatives
  15. IDEA 社区版进行 Web 开发
  16. 如何将安防摄像头接入互联网直播服务器
  17. 强化学习——双臂攀爬机构运动控制
  18. Excel中列和行之间的互换技巧。
  19. Firefox浏览器基本使用
  20. 优视科技招聘linux程序员的题目,UC优视(UC浏览器)软件工程师面试经验

热门文章

  1. 如何在FineUIMvc(ASP.NET MVC)视图中绑定多个模型?
  2. Oracle的参数文件pfile和spfile
  3. 赠 看穿一切的var_dump
  4. Angular2:从AngularJS 1.x 中学到的经验
  5. Java设计模式--总结
  6. 连续按back键盘退出自己的应用,杀掉进程
  7. 图书管理系统前景与范围文档
  8. go package学习——os
  9. PHP cron中的批处理(转)
  10. Redmine+Apache+SVN+Postfix完整配置指南