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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李晓泉 中级黑马   /  2013-3-14 09:42  /  1252 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

StringBuilder类与String类有什么区别?
在什么情况下使用StringBuilder类方便?

2 个回复

倒序浏览
一个String对象的长度是固定的,一旦声明就不能改变它内容。但用+号可以达到串联字符串或添加习字符串的目的,但这样会产生一个新的string实例,这样就会消耗内存和时间,所以如果不断产生string实例会降低效率;
StringBuilder类,这个类对象默认会有16个字符的长度,也可以自行指定初始长度。如果字符超出可容纳的长度,则StringBuilder对象会自动增加长度。如果要是频繁操作字符串,使用StringBuilder会大大提高效率
回复 使用道具 举报
StringBuilder类与String类有什么区别?
stringbuilder做字符串拼接时不会从新产生一个新的字符串,他的行为为在原有的字符串上追加,从开始的结束有且只有一个字符串。
string是一旦声明就不能改变:
有时会有这样的疑问:
谁说不能改变假如我这样写不就改变了吗?string s=“a”;s=“b”;  
这种确实改变了s,但是不能理解为字符串改变,因为string是引用类型,所以他是把原有的指向断开,从新指向一个新的字符串。。。
原有的字符串可能丢失,也可能存在,他有一个拘留池进行管理这时好像涉及到垃圾回收机制。

在什么情况下使用StringBuilder类方便?
在需要大量字符串拼接的时候使用stringbuilder。
要是使用string会产生大量新字符串,耗内存。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马