展开全部
这个东西的存在看似很没有道理
但是其实是这样的.
举个例子:
你拼字符串一般是怎么拼呢?
String city="上海";
String a="您好,欢迎来到"+city;
是吧?
但是这样做的意思是什么?
电脑会在内存中令开辟一块内存空间,
实例化一个新的String类来保存它.
如果有大量字符串操作,这么做肯定是很消耗内存的.并且效率低下
所以,StringBuilder出现了.
他不能+,但是它有Append和Remove等函数差纳来实现拼接和删除字符串.
在操作字符串的时候,他不会再重新实例化凳圆一个类
这样可虚粗没以节省内存,提高效率。
当然,他还有N多函数.可以对字符串作各种操作.可以说是一个字符串工具箱!
你还是查一下MSDN吧
(JAVA里也有这个.类似的还有StringBuffer参见JAVA API)
但是其实是这样的.
举个例子:
你拼字符串一般是怎么拼呢?
String city="上海";
String a="您好,欢迎来到"+city;
是吧?
但是这样做的意思是什么?
电脑会在内存中令开辟一块内存空间,
实例化一个新的String类来保存它.
如果有大量字符串操作,这么做肯定是很消耗内存的.并且效率低下
所以,StringBuilder出现了.
他不能+,但是它有Append和Remove等函数差纳来实现拼接和删除字符串.
在操作字符串的时候,他不会再重新实例化凳圆一个类
这样可虚粗没以节省内存,提高效率。
当然,他还有N多函数.可以对字符串作各种操作.可以说是一个字符串工具箱!
你还是查一下MSDN吧
(JAVA里也有这个.类似的还有StringBuffer参见JAVA API)
TableDI
2024-07-18 广告
2024-07-18 广告
VLOOKUP是Excel中用于垂直查找的函数,其基本用法包括四个参数:1. 查找值:即在数据表首列中需要搜索的值。2. 数据表:包含查找值的单元格区域或数组。3. 返回值所在列数:指定返回查询区域中第几列的值。4. 查找方式:选择精确匹配...
点击进入详情页
本回答由TableDI提供
展开全部
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)
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)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
StringBuilder叫字符串衫埋缓存区对象,使用时可以不断添或乎蚂加字符、字符串等已有内容。
需要使用时调用toString()获得对象里的所有字符串。
作用:
简化字符串常量池的个数,节省内存。
StringBuilder相当于一个池子,可以存放很多已有的字符串,使用时可以以此获得很长的字顷卜符串,从而优化程序。
JDK底层使用StringBuilder实现字符串拼接。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单地说比直接拼接字符串效率高,也更节省内存。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询