社区
C#
帖子详情
String 和 StringBuilder 的区别和使用环境?
GoldWood
2008-08-28 12:06:52
我先申明,我是看过书了,看了之后更糊涂了,这两个类型除了内存使用方式不同外还有什么区别,在书上及其它介绍上来看StringBuilder比String要优秀,那么为什么还要有String的这类型的使用方式呢,还有既然有了这两种方式,那么在什么情况下使用那种类型比较合理呢,优点又在哪里呢
...全文
15638
65
打赏
收藏
String 和 StringBuilder 的区别和使用环境?
我先申明,我是看过书了,看了之后更糊涂了,这两个类型除了内存使用方式不同外还有什么区别,在书上及其它介绍上来看StringBuilder比String要优秀,那么为什么还要有String的这类型的使用方式呢,还有既然有了这两种方式,那么在什么情况下使用那种类型比较合理呢,优点又在哪里呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
65 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
码农_人生
2012-04-24
打赏
举报
回复
该结了
rr998
2012-03-15
打赏
举报
回复
看完了,明白了,呵呵,收藏了~~
cca313
2011-12-12
打赏
举报
回复
学习学习~~ 受用了。
alun0624
2011-10-12
打赏
举报
回复
[Quote=引用 54 楼 fryhunter 的回复:]
string是常量,不可变。stringbuilder可变。自己认真理解这里的可变与不可变。楼上一个小白来 了句string s="0";s="1"来说明string是可变的,你懂不懂什么叫做内存分配啊,真是无语了。楼上有一个娃举得例子是哪个3个string,一个string的那个,其实他理解对了,只是别的地方知识欠缺了,所以误人子弟了。用下面这个例子说吧。
string s="aa"; ……
[/Quote]
string难道不是引用类型的??
zhuiwenwen
2011-07-25
打赏
举报
回复
顶顶顶。
hzdwf
2011-07-07
打赏
举报
回复
大家解释的很详细,对新手帮助很大!
mazhipeng888
2011-06-12
打赏
举报
回复
string对象一旦生成,就不可改变,所以每次使用System.String类中的方法时,都需要在内存中创建一个新的字符串的对象,这会分配新的空间给该新的对象。
如果不创建新的对象我们可以使用StringBuildet类。
在相同字符串的许多操作下,使用StringBuilder类会比使用String对象更有效率。对于少量的字符串的拼接的操作,使用String使用起来会比较方便。
zhmjppp
2011-06-07
打赏
举报
回复
今天学习了。。。。
jiuwulang
2011-02-26
打赏
举报
回复
各路高人各抒已见!谢谢啊~~
_程序员
2010-11-23
打赏
举报
回复
呵呵,不错,明白 了
lgf11088
2010-07-07
打赏
举报
回复
当要连接的字符串比较长或者比较频繁时,用stringbuilder 效率比较高
fryhunter
2010-06-30
打赏
举报
回复
string是常量,不可变。stringbuilder可变。自己认真理解这里的可变与不可变。楼上一个小白来 了句string s="0";s="1"来说明string是可变的,你懂不懂什么叫做内存分配啊,真是无语了。楼上有一个娃举得例子是哪个3个string,一个string的那个,其实他理解对了,只是别的地方知识欠缺了,所以误人子弟了。用下面这个例子说吧。
string s="aa"; s +="bb"; 则内存中存在了aa bb aabb 三个
stringbuilder ss="aa"; ss.Append("bb")。则内存中只有两个 "bb" "aabb" 此处少了一个"aa",其实是因为stringbuilder是可变的,"aa"变成了"aabb",而不是重新分配新空间。
楼主其实问的是为什么是stringbuilder比string好,还是存在string。因为stringbuilder是引用类型的,一开始分配的时候需要比较多的空间,而string是值类型的。这个有点struct与class的利害比较了。如果不是频繁拼接的情况下,。string的性能明显好于stringbuilder,所以楼上有一个人说的很对,如果频繁拼接就用stringbuilder,如果是展现那么用string。
传说中的张
2010-06-14
打赏
举报
回复
mark
wei_wu49036233
2010-04-17
打赏
举报
回复
....学习
wangyan_world
2010-03-31
打赏
举报
回复
学习
学习
bdx808
2010-03-30
打赏
举报
回复
学习
收藏
chenymimi
2010-01-06
打赏
举报
回复
别人说builder比string效率高,那我就用builder了,至于什么区别,我也不清楚了。
whengjun
2009-12-23
打赏
举报
回复
var str = string.Format("{0}、{1} {2} {3} {4} {5} {6} {7}"
whengjun
2009-12-23
打赏
举报
回复
var str = string.Format("{0}、{1} {2} {3} {4} {5} {6} {7}"
wubaodong
2009-12-10
打赏
举报
回复
[Quote=引用 26 楼 lude8880 的回复:]
引用 25 楼 liuhz_jsmstc 的回复:
StringBuilder表示可变字符串
String表示不可变字符串
比如你在编程时,声明一个字符串变量,string aa="";
又比如,你在编程时,拼凑SQl语句:
如:
stringBuilder strbu=new stringbulider;
strbu.append(" select * from table1");
strbu.append(" where 1=1");
strbu.append(" and 2=2");
return strbu.tostring();
这样的情况就用stringbuilder
string怎么不可变了?
string s="0";
s="1";
string 和string builder 功能上没区别,只有效率的区别
[/Quote]
我的理解。
string s="0";
这句中,堆存储区中NEW出一个真正的String类的对象"0"
而s是什么?s只不过只在栈中创建的引用变量,类似C中的指针,只分配了一小段内存,里面只是存放了上述对象"0"的地址。
等效于
String s = new String("0");
s="1";
这句话做了什么?首先再次在堆中NEW出一个String类的对象"1";该对象与前面的"0"没任何关系.
然后将对象"1"的地址赋值给栈中的引用变量s,就是说s的值发生了变化,而对象"0","1"没有任何变化。
等效于
s = new String ("1");
就是说变化的是引用变量s的值,使得通过s中的地址可以访问到对象"1"了。而这时的对象"0"没有任何变化,并且也没有任何方法可以改变它。
加载更多回复(45)
Java 中操作字符串都有哪些类?它们之间有什么
区别
?
String
Buffer 和
String
Builder
最大的
区别
在于,
String
Buffer 是线程安全的,而
String
Builder
是非线程安全的,但
String
Builder
的性能却高于
String
Buffer,所以在单线程
环境
下推荐
使用
String
Builder
,多线程...
java--面试题大全(附答案
String
和
String
Builder
、...
String
Builder
是Java 5中引入的,它和
String
Buffer的方法完全相同,
区别
在于它是在单线程
环境
下
使用
的,因为它的所有方面都没有被synchronized修饰,因此它的效率也比
String
Buffer要高。
JavaSE基础视频精讲⑫:
String
,
String
Builder
和
String
Buffer
本课程适用于零基础小白快速入门Java语言技术,通过课程学习可以清晰了解Java
String
,
String
Builder
和
String
Buffer。课程配套完整的(笔记+代码+作业)
c#中的
string
和
String
Builder
的
区别
解析c#中的
string
和
String
Builder
的
区别
,只有非常了解后我们才能更好的编程和灵活
使用
。
区别
1、类
String
表示字符串, 比如“ abc ”。 类
String
Builder
表示可改变大小的字符序列( sequence of characters )...
Java基础之
String
和
String
builder
的
区别
Java基础之
String
和
String
builder
的
区别
C#
110,561
社区成员
642,566
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章