String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。
StringBuilder 对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是您可以为它可容纳的最大字符数指定一个值,当修改 StringBuilder 时,在达到容量之前,它不会为其自己重新分配空间。当达到容量时,将自动分配新的空间且容量翻倍。可以使用重载的构造函数之一来指定 StringBuilder 类的容量。
例如: StringBuilder hr = new StringBuilder(); hr.Append("a")他不会频繁申请内存空间,他会自动向后扩展。
两者的区别:
1. string 对象时恒定不变的,stringBuider对象表示的字符串是可变的。stringBuilder是.net提供的动态创建string的高效方式,以克服string对象恒定性带来的性能影响。
2. 对于简单的字符串连接操作,在性能上stringBuilder并不一定总是优于string。因为stringBuider对象创建代价较大,在字符串目标连接较少的情况下,过度滥用stringBuilder会导致性能的浪费,只有大量的或者无法预知次数的字符串操作,才考虑stringBuilder来实现。事实上,一般连接次数设置100次以内,根本看不出两者的性能差别。
3. 当修改字符串信息时,此时不许创建对象,可以使用stringBuilder对象。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。如果你想了解更多相关内容请查看下面相关链接
主要内容:总结在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。String 类是不可变类,即一旦一个 String 对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。 Java 提供了两个可变字符串类 StringBuffer 和 StringBuilder,中文翻译为“字符串缓冲区”。 StringBuilder 类是 JDK 1.5 新增的类,
这篇文章主要介绍了String、StringBuffer、StringBuilder的区别详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下。放假在家里休息,闲来无事,想巩固巩固自己的基础知识。 Java中提供了两个类String和StringBuffer,它们用于储存和操作字符串
本文向大家介绍String 和 StringBuffer、StringBuilder 的区别是什么?相关面试题,主要包含被问及String 和 StringBuffer、StringBuilder 的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 可变性 简单的来说:String 类中使用 final 关键字修饰字符数组来保存字符串,,所以 String 对象是不可变的。而StringBuil
本文向大家介绍createElement与cloneElement两者有什么区别?相关面试题,主要包含被问及createElement与cloneElement两者有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 1.第一个参数不一样 React.cloneElement( element, [props], [...children] ) React.createElement( type
本文向大家介绍exit(0)与exit(1)两者之间的区别,包括了exit(0)与exit(1)两者之间的区别的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将了解exit和exit(1)之间的区别。 exit 它是便携式的。 它告知程序成功终止或完成。 它告知程序执行时终止而没有任何错误。 “ EXIT_SUCCESS”宏用于返回代码0。 可以将“ EXIT_SUCCESS”定义为标准零
本文向大家介绍C#中String与string的区别分析,包括了C#中String与string的区别分析的使用技巧和注意事项,需要的朋友参考一下 本文实例展示了C#程序设计中String与string的区别,对于C#初学者来说有很好的参考借鉴价值。具体如下: 一、区别分析: String:类,System.String string:类型,变量 两者本质上没有任何区别,都是System.Stri