String&StringBuffer的区别
来源:互联网 发布:淘宝成品店铺 编辑:程序博客网 时间:2024/05/19 17:58
String对象一旦生成就不能修改,StringBuffer可以
String对象传递的时候是值传递(具体是因为String是拷贝构造,具体为什么就不要难为我了,总之现实如此),StringBuffer是引用传递
String是定长的,
StringBuffer是变长的
String是常量;它的值在创建之后不能改变。
StringBuffer支持可变的字符串。
在对Stirng做 += 或 + 操作时并不是把你要加的字符串加到了你的对象上,而是使用你要得到的(加好的)字符串重新创建了一个Stirng对象,并把引用重新指向给你
StringBuffer可以直接对对象进行追加字符串不用重新创建对象
所以你要重建的对象如果要经常改变内容使用StringBuffer会更好
String是一种强不变类型,它的值一旦被赋予之后,在内存中的相应位置上的值就不会变化了.即便你用String的方法:concat(String str)和replace(char oldChar, char newChar)等等,所返回的值都是新创建的一个String类型,而不是在原内存地址上去更改,因此比如这样的一个赋值:
String s="Hello Baidu";
s=new String("Hello Baidu");
这样在内存中其实是开辟了两个内存空间来存放Hello Baidu,前面那个对象依然留在内存当中,而:
s=s.concat("!");
加上这样一句,s的值变为了Hello Baidu!,在内存中实际上是新创建了一个String对象装Hello Baidu!,而原有的Hello Baidu依然存在
StringBuffer就不同了,它是种可变类型,它的值被赋予之后,在运行期同样可以通过它的方法,如append(String str) 操作内存上的值,而不仅仅是它的引用而已,也就是说同样的对s的值进行修改
StringBuffer s="Hello Baidu";
s.append("!");
这样的操作其实只创建了一个StringBuffer的对象,大大节约了内存的开销
- String,StringBuffer,StringBuffer的区别
- String StringBuffer StringBuffer的区别
- String StringBuffer的区别~
- String&StringBuffer的区别
- String,StringBuffer的区别
- String、StringBuffer的区别
- StringBuffer以及StringBuffer与String的区别
- String、StringBuffer、StringBuffer类的区别
- String 和 StringBuffer的区别
- String&StringBuffer的区别
- String与StringBuffer的区别?
- string与stringBuffer的区别
- String 和StringBuffer的区别
- String 和StringBuffer的区别?
- String和StringBuffer的区别
- string与stringbuffer的区别
- String 和StringBuffer的区别
- string与stringbuffer的区别
- 详解ThreadLocal类
- 一个关于资产泡沫小故事
- 堆与栈的区别
- arm的7种执行模式
- WebLogic的安装和配置[参考]
- String&StringBuffer的区别
- 动态加载JS脚本的4种方法
- C#类的成员详解
- C语言函数入栈顺序与可变参数函数
- C语言结构体的字节对齐原则
- 通过ll判断linux文件的类型以及介绍linux的特殊文件
- linux sd卡驱动分析,基于mini2440,sdio mmc sd卡驱动编写
- Qt Phonon2
- 学习性网址