永发信息网

StringBuilder是什么意思

答案:3  悬赏:10  手机版
解决时间 2021-01-07 18:20
  • 提问者网友:战魂
  • 2021-01-06 19:52
StringBuilder是什么意思
最佳答案
  • 五星知识达人网友:荒野風
  • 2021-01-06 20:13
这个东西的存在看似很没有道理
但是其实是这样的.

举个例子:
你拼字符串一般是怎么拼呢?
String city="上海";
String a="您好,欢迎来到"+city;
是吧?
但是这样做的意思是什么?
电脑会在内存中令开辟一块内存空间,
实例化一个新的String类来保存它.
如果有大量字符串操作,这么做肯定是很消耗内存的.并且效率低下
所以,StringBuilder出现了.
他不能+,但是它有Append和Remove等函数来实现拼接和删除字符串.
在操作字符串的时候,他不会再重新实例化一个类
这样可以节省内存,提高效率。

当然,他还有N多函数.可以对字符串作各种操作.可以说是一个字符串工具箱!

你还是查一下MSDN吧
(JAVA里也有这个.类似的还有StringBuffer参见JAVA API)
全部回答
  • 1楼网友:爱难随人意
  • 2021-01-06 23:05
简单地说比直接拼接字符串效率高,也更节省内存。
  • 2楼网友:第幾種人
  • 2021-01-06 21:46
String str1 = "myString";
String str2 = "myString";
str1和str2 具有相同的指针 也就是 内存中只有一个myString
如果 改变str1的值 并不会改变myString内存的值 会在内存中重新划分一块区域来存储新的字符串 同时改变str1的指针
StringBuilder则不一样 当你new一个StringBuilder时就会划分一块内存给StringBuilder实例使用 当你Append或Remove或进行其他操作是并不会重新分配内存 除非你的新字符串长度超过了StringBuilder实例的默认大小才会重新分配内存
String 或 StringBuilder 对象的串联操作的性能取决于内存分配的发生频率。String 串联操作每次都分配内存,而 StringBuilder 串联操作仅当 StringBuilder 对象缓冲区太小而无法容纳新数据时才分配内存。因此,如果串联固定数量的 String 对象,则 String 类更适合串联操作。这种情况下,编译器甚至会将各个串联操作组合到一个操作中。如果串联任意数量的字符串,则 StringBuilder 对象更适合串联操作;例如,某个循环对用户输入的任意数量的字符串进行串联。(MSDN)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯