设为首页 加入收藏

TOP

String、StringBuilder和StringBuffer类
2017-11-13 14:55:52 】 浏览:211
Tags:String StringBuilder StringBuffer

String/StringBuilder/StringBuffer这3个类都能创建字符串对象,它们都继承自Object类。


其中String对象一经创建,空间固定不变,无法再向其中增、删数据。即使提供了replace()方法,但也是一个字符对应一个字符的替换。总之它的空间大小不变。


而后两者都是可变空间的String对象,因此它们都提供了append()方法、insert()方法以及delete()等修改空间数据的功能。StringBuilder类是StringBuffer类的简版,但效率更高,且它们提供的功能是完全一致的。因此在StringBuilder能满足要求时,建议使用StringBuilder类而非StringBuffer类。


它们的使用方法完全一致。因此以StringBuilder类为例。


该类用于创建String类,并提供向String数据中插入、删除数据的功能。它最主要的两个方法是append()和insert()。


构建String对象:


append()方法用于向已有String对象的尾部追加字符串数据,如果数据不是字符串类型,则会使用toString()方法转换为String类型。


insert()方法用于向指定位置处插入数据。


还有以下一些String相关的通用方法,其中如果包含start、end位置的方法,一般都不会计算end边界。


Buffer(为了方便,简写)是同步的,保证多线程安全。线程1 append()后,必须先同步才释放锁,线程2和线程3等才能继续操作(如delete)这段缓冲区中的数据。但也因为要确保数据已经同步,所以效率稍稍差一点。


Builder不保证多线程安全,线程1 append()数据后,线程2可以直接操作(如delete)这段缓存区中的数据。但因为无需确认数据是否同步,因此效率比Buffer要高一些。


它们的关键点在于是否多线程安全,对于单线程来说,它们总是安全的,此时应该采用Builder来提高效率。


几个重要的方法:


还有些其他方法:


例如,有一个int[]数组,想将该数组转换为String[]。这相当于重写一个"String[] toString(int[] arr)"方法。


例如int[]数组{1,2,3,4}???成字符串,结果为"1 2 3 4"。即将数组中的值变为字符串并使用空格分隔。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java8 函数式编程详解 下一篇Linux 内核层和 用户层 配置 GPIO..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目