A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© cyc523633157 中级黑马   /  2014-8-4 17:25  /  1186 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 cyc523633157 于 2014-8-5 21:29 编辑

string与stringBuffer的区别

6 个回复

倒序浏览
String是属于StringBuffer类的,就好像Int和integer的关系。
回复 使用道具 举报
所谓容器,就是一个放置的空间!StringBuffer 就是String的一个专用容器
比方你有水,你要把水放在一个专用的水杯!
回复 使用道具 举报
stringBuffer不定长
回复 使用道具 举报
String:字符串常量
StringBuffer:字符串变量
StringBuilder:字符串变量
String 是字符串常量,也就是不可改变的对象。举个例子
  1. String s = "abcd";
  2. s = s+1;
  3. System.out.print(s);// result : abcd1
复制代码

这样看似是改变的String的变量s,可为什么说是没有改变?其实过程是
1创建s对象  
2赋值abcd
3创建一个新的对象 执行第二行代码
所以 原来的s并没有改变,每当操作字符串时都是不断的创建新的对象,之前的被GC回收
所以说String效率低
而其他两个不同,两个容器,随意更换里面的内容,而不是创建新的对象。这样说可以理解吗?
回复 使用道具 举报
可变字符串(StringBuffer)与不可变字符串(String),具体去百度。
回复 使用道具 举报
1.StringBuffer是一个容器,长度是可以改变的,String一旦初始化了就不可以改变了
2.StringBuffer可以操作多个数据类型,但最终都会变成字符串
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马