java中String和StringBuffer区别

来源:互联网 发布:php __set 破坏封装 编辑:程序博客网 时间:2024/06/11 04:41

JAVA提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。

这个String类提供了不可改变的字符串。

而这个StringBuffer类提供的字符串可以进行修改。

String:
为不可变对象,一旦被创建,就不能修改它的值.
对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.

StringBuffer:
是一个可变  ,当对他进行修改的时候不会像String那样重新建立对象
它只能通过构造函数来建立,
StringBuffer ss = new StringBuffer();
注意:不能通过赋值符号对他进行付值.
ss = "w!";//error
对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.向StringBuffer
中付值的时候可以通过它的append方法.
ss.append("w!");

地址不可更改,长度和内容可改。append()方法是追加,超过预留内存时,内存翻倍。

效率比较:StringBuffer比String高。因为StringBuffer有预留空间一直追加,只是对一个对象进行操作。而String是不能被修改的,只能重复的去创建对象来实现修改。——如果频繁的对字符串进行追加、替换、修改、插入、删除操作,最好使用StringBuffer。如果必须用String可以使用StringBuffer调用toString()来转换成String即可。


原创粉丝点击