时间:2021-05-20
StringBuilder 最早出现在JDK1.5,是一个字符拼接的工具类,它和StringBuffer一样都继承自父类AbstractStringBuilder,在AbstractStringBuilder中使用char[] value字符数组保存字符串,但是没有用final关键字修饰,所以StringBuilder是可变的。
StringBuilder 对字符串的操作是直接改变字符串对象本身,而不是生成新的对象,所以新能开销小。
与StringBuffer相比StringBuilder的性能略高(15%~30%),StringBuffer为保证多线程情况下的安全性(synchronize加锁)而牺牲了性能,以时间来换取安全。而StringBuilder则没有保证线程的安全,从而性能略高于StringBuffer。
频繁使用字符串拼接的时候可以用StringBuilder(推荐)或者StringBuffer。
一、StringBuilder对象的创建(下文builder是StringBuilder创建出来的对象)
1.常规创建
StringBuilder builder = new StringBuilder();2.在创建的时候添加初始字符串
StringBuilder builder = new StringBuilder("abc");3.在创建的时候添加初始长度
StringBuilder builder = new StringBuilder(初始长度);这里需要注意的是如果在StringBuilder的对象创建时没有指定长度,StringBuilder对象会自动生成一个16位的字符数组
二、StringBuilder对象的方法
数据的种类可以有:
1.builder.append()
作用:追加数据
builder.append("just");在加入新字符串时,不会在内存中新开辟字符串空间,只是给原有的字符串尾部加入新字符串
2.builder.insert()
作用:向指定位置插入数据
builder.insert(0, "you");每次加入新字符串之后都会改变字符串中每个字符的地址
插入后原始指定位置的数据向后移
3.builder.deleteCharAt()
作用:删除指定位置的数据
builder.deleteCharAt(index);4.builder.delete( )
作用:删除指定范围的数据左闭右开
builder.delete(beginIndex, endIndex);范围:从开始位置到结束位置的前一个
5.builder.toString()
作用:将对象中的数据以字符串的形式返回
builder.toString();6.builder.reverse()
作用:将对象中的数据反转
builder.reverse();注意
原始数组长度不够时,在传入新字符串时会增加数组长度,并将原来的数据传到新数组中,反复添加遇到这种情况时会对内存造成损耗,为了避免这种情况,可以在创建时提前给StringBuilder对象设置长度:StringBuilder builder = new StringBuilder(初始长度)。
到此这篇关于Java StringBuilder用法的文章就介绍到这了,更多相关Java StringBuilder用法内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
这篇文章主要介绍了Java内存分配多种情况的用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下Java内
java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下
java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下
java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下
这篇文章主要介绍了Java设计模式模板方法模式(Template)用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋