String、StringBuffer、StringBuilder三者的异同
String、StringBuffer、StringBuilder
- String、StringBuffer、StringBuilder三者的异同
- StringBuffer、StringBuilder的一些常用方法
String、StringBuffer、StringBuilder三者的异同
- String:不可变的字符序列;
- StringBuffer:可变的字符序列,线程安全的,效率低。
- 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")
注意:
- 打印StringBuffer 和StringBuilder对象的长度时,计算的是有效长度,有几个元素长度就是几。
- 扩容问题 ,空间不够时,数组会自动调用底层的扩容函数进行扩容,默认扩容为原来的2倍+2,同时将原有数组的数据拷贝到新的数组中。
- 在实际开发中,如果我们一直需要添加很多次,就需要选用带参数数的方式来指定长度,避免在之后的程序中的扩容操作,影响效率。
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三者的异同相关推荐
- String,StringBuffer,StringBuilder三者的异同
String,StringBuffer,StringBuilder三者的异同:? String:不可变的字符序列;底层使用char[]存储(用final修饰) StringBuffer:可变的字符序列 ...
- Java学习20天 String 类 常用方法 String、StringBuffer、StringBuilder三者的异同
String 类 String:字符串,使用一对""引起来表示. 1.String声明为finaL的,不可被继承 2.String实现了SerializabLe接口:表示字符串是支 ...
- 重温java中的String,StringBuffer,StringBuilder类
不论什么一个系统在开发的过程中, 相信都不会缺少对字符串的处理. 在 java 语言中, 用来处理字符串的的类经常使用的有 3 个: String.StringBuffer.StringBuilder ...
- 浅谈 Java 字符串(String, StringBuffer, StringBuilder)
我们先要记住三者的特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义 查看 API 会发现,String ...
- String, StringBuffer, StringBuilder之间的区别
String与StringBuffer/StringBuilder之间的主要区别 1.String对象不可变, 如果修改会重新创建一个对象, 然后把值保存进去. StringBuffer/String ...
- java中 String StringBuffer StringBuilder的区别
* String类是不可变类,只要对String进行修改,都会导致新的对象生成. * StringBuffer和StringBuilder都是可变类,任何对字符串的改变都不会产生新的对象. 在实际使用 ...
- String StringBuffer StringBuilder区别与联系
String StringBuffer StringBuilder String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量 ...
- String StringBuffer StringBuilder的区别
简单的事情做到极致也是一种能力. 首先,说一下目前我还没进行整理的情况下,我的理解: String 不可修改 修改后相当于又新创建创建一个字符串 比如: String a = "abc&qu ...
- Java中的String,StringBuffer,StringBuilder有什么区别?
相信有很多同学都是经常使用String的,或者也或多或少的听说过StringBuffer,StringBuilder,那么在经常遇见的面试题中(标题),到底这三个的区别是什么呢?让我们来一探究竟! S ...
最新文章
- Java知多少(42)泛型通配符和类型参数的范围
- mxnet METRIC自定义评估验证函数
- my task is always searched based on employee responsible
- php考勤分析,php考勤系统
- 里面怎么模拟裂纹_警惕!你买的翡翠有裂纹吗?它能让翡翠的价值暴跌
- R7-7 寻找大富翁 (25 分)
- 机器视觉用c还是python_机器视觉_opencv-python环境搭建
- oracle11g 查看表,oracle11g查看,添加表空间
- JAVA基础--JAVA中的反射机制详解(转)
- 十大排序算法——二分插入排序法(C语言)
- 织梦php 文章采集规则,dede自带采集器的高阶技巧
- 记录mikrotik路由器的折腾过程
- xrd精修教程_XRD精修教程.pdf
- 流利阅读 2019.2.27 How sky-high rents forced people into imaginative alternatives
- IDEA 社区版进行 Web 开发
- 如何将安防摄像头接入互联网直播服务器
- 强化学习——双臂攀爬机构运动控制
- Excel中列和行之间的互换技巧。
- Firefox浏览器基本使用
- 优视科技招聘linux程序员的题目,UC优视(UC浏览器)软件工程师面试经验