理论教育 String类和StringBuffer类区别

String类和StringBuffer类区别

时间:2023-11-25 理论教育 版权反馈
【摘要】:String 的长度是不可变的,StringBuffer 的长度是可变的。使用StringBuffer 主要是在性能上的考虑。String 类和StringBuffer 类有以下相同点:String 类和StringBuffer 类都用于处理字符串。对于String 类和StringBuffer 类,字符在字符串中的索引位置都从0 开始。而StringBuffer 类的方法都会改变缓冲区的字符串内容。String 类覆盖了Object 类的equals()方法,而StringBuffer 类并没有覆盖该方法。String 类对象可以用“+”进行连接,而StringBuffer 类对象之间不能通过操作符“+”进行连接。

String类和StringBuffer类区别

String 的长度是不可变的,StringBuffer 的长度是可变的。如果对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer 的toString()方法。

使用StringBuffer 主要是在性能上的考虑。String 是一种非常常用的数据类型,但由于String 是不可变对象,在进行String 的相关操作的时候会产生许多临时的String 对象。而StringBuffer 在操作上是在一个缓冲区中进行的,性能当然优越得多。不过,一般作为简单的字符串传递和其他操作,只要不改变字符串内容的操作,用String 效率会高一些。

String 类和StringBuffer 类有以下相同点:

➢ String 类和StringBuffer 类都用于处理字符串。

➢ String 类和StringBuffer 类都提供了length()、toString()、charAt()和substring()方法,它们的用法在两个类中相同。

➢ 对于String 类和StringBuffer 类,字符在字符串中的索引位置都从0 开始。

➢ 两个类中的substring(int beginIndex,int endIndex)方法都用来截取字符串,而且截取的范围都从beginIndex 开始,一直到endIndex-1 结束,截取的字符个数为endIndex-beginIndex。(www.daowen.com)

String 类和StringBuffer 类有以下不同点:

➢ String 类是不可变类,而StringBuffer 类是可变类。String 对象创建后,它的内容无法改变,一些看起来能够改变字符串的方法,实际上是创建并返回一个包含改变后内容的新字符串对象。而StringBuffer 类的方法都会改变缓冲区的字符串内容。

➢ String 类覆盖了Object 类的equals()方法,而StringBuffer 类并没有覆盖该方法。

➢ 两个类都覆盖了Object 类的toString()方法,但各自的实现方式不同。String类的toString()方法返回当前String 实例本身的引用,而StringBuffer 类的toString()方法返回一个以当前StringBuffer 的缓冲区的所有字符为内容的新的String 对象的引用。

➢ String 类对象可以用“+”进行连接,而StringBuffer 类对象之间不能通过操作符“+”进行连接。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈