首页 > 代码库 > .net字符串内存的分配
.net字符串内存的分配
几次面试中遇到都有类似的问题,就是
string str = "aa" + "bb" + "ccc";进行了几次内存分配?
1 class Program2 {3 static void Main(string[] args)4 {5 string str = "aa" + "bb" + "ccc";6 Console.WriteLine(str);7 }8 }
我们知道由于字符串是不可变的,所以我理所当然的以为进行了四次内存
分配。分别是aa,bb,ccc,aabbccc四次分配,真是情况是这样吗?
今天忽然想起来,于是写了代码做一下验证,用Ildasm看一下
实际上是分配了一次,只所以这样,是编译器进行了优化。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。