主要区别是StringBuilder是Mutable,而String是Immutable。
字符串是不可变的,不可变是指如果您创建字符串对象,则无法对其进行修改,并且它总是在内存中创建字符串类型的新对象。
另一方面,StringBuilder是可变的。意味着,如果我们创建一个字符串生成器对象,那么我们可以执行任何操作,例如插入,替换或追加,而无需每次都创建新实例。它将在内存中的某个位置更新字符串,而不会在内存中创建新空间。
using System; using System.Text; class DemoApplication{ public static void Main(String[] args){ String systemString = "Hello"; StringConcat(systemString); Console.WriteLine("String Class Result: " + systemString); StringBuilder stringBuilderString = new StringBuilder("Hello"); StringBuilderConcat(stringBuilderString); Console.WriteLine("StringBuilder Class Result: " + stringBuilderString); } public static void StringConcat(String systemString){ String appendString = " World"; systemString = String.Concat(systemString, appendString); } public static void StringBuilderConcat(StringBuilder stringBuilderString){ stringBuilderString.Append(" World"); } }
输出结果
上面示例的输出如下-
String Class Result: Hello StringBuilder Class Result: Hello World
使用StringConcat方法:在此方法中,我们传递字符串“ Hello”并执行“ systemString = String.Concat(systemString,appendString);”。其中appendString是要串联的“世界”。传递的字符串Main()
未更改,这是由于String是不可变的。更改字符串的值会在StringConcat()
存储的新字符串引用中创建另一个对象和systemString 。但是引用systemString inMain()
和StringConcat()
引用不同的字符串。
使用StringBuilderConcathtml" target="_blank">方法:在此方法中,我们传递字符串“ Hello”并执行“ stringBuilderString.Append(“ World”);” 它将字符串的实际值(在Main中)更改为“ Hello World”。这是由于StringBuilder是可变的,因此更改了它的值这一简单事实。
问题内容: 使用哪种更好或更方便: 要么 问题答案: 您是否完全需要类型属性?如果您使用的是HTML5,则不会。否则,是的。HTML 4.01和XHTML 1.0 根据需要指定属性,而HTML5具有可选属性,默认为。HTML5现在得到了广泛的实现,因此,如果您使用HTML5doctype,则是有效且不错的选择。 至于type属性中应该包含的内容,2006年注册的MIME类型旨在替代所有主要浏览器(
当开发一个需要我唯一识别手机用户的应用程序时。我希望得到一些关于使用手机UDID还是IMEI的建议。使用这两种方法有什么优点/缺点吗。如有任何意见,将不胜感激
我是一个初学者,我正在开发一个Android应用程序,它会在一定的延迟(以天为单位)后继续向用户发送短信。我希望用户一旦注册就应该收到短信,不管他是否登录。短信内容和手机号码是从database.So获取的,经过研究,我发现了两种方法。 > 预定执行人服务 报警管理器 问题是,当手机关闭或重新启动时,警报管理器将关闭。预定的礼宾服务也是如此吗?使用执行器服务时,我应该在线程池中使用多少个线程?
问题内容: 我研究了Linux内核,发现对于x86_64体系结构,中断不适用于调用系统调用1。 对于i386体系结构(32位x86用户空间),更可取的是:或者为什么? 我使用Linux内核版本3.4。 脚注1:在某些情况下确实可以在64位代码中工作,但是从不建议这样做。 问题答案: 是在上进入内核模式的默认方法。该指令 在Intel处理器的 32位操作模式下不可用。 是最常用于以32位操作模式调用
问题内容: 我正在研究/比较CXF和Spring-WS的Web服务吗?我需要同时充当WS的提供者和使用者。简而言之,有人告诉我Spring- WS更具可配置性,但是CXF易于启动和运行。这个问题是主观的,但将有助于指导我的研究。 您对这两个框架有什么经验? 您对这两个框架有任何陷阱吗? 您是否发现任何一个提供的有用功能可能是另一个没有提供的功能? 问题答案: 我认为最大的区别是Spring-WS
问题内容: 要在数据库中搜索在任何列“ foo_desc”和“ bar_desc”中同时具有关键字“ foo”和“ bar”的行,我将执行以下操作: 要么 我希望最后一个查询的缺点是性能。 好的一面是,LIKE查询找到了“ MATGA AGAINST”找不到的“ xxfoo”。 哪一个是首选,还是有更好的解决方案? 问题答案: 更新资料 从表开始,表支持。 第一个 要 好得多。在 MyISAM 表