.net字符串内存的分配
2024-08-26 12:39:53
几次面试中遇到都有类似的问题,就是
string str = "aa" + "bb" + "ccc";进行了几次内存分配?
1 class Program
2 {
3 static void Main(string[] args)
4 {
5 string str = "aa" + "bb" + "ccc";
6 Console.WriteLine(str);
7 }
8 }
我们知道由于字符串是不可变的,所以我理所当然的以为进行了四次内存
分配。分别是aa,bb,ccc,aabbccc四次分配,真是情况是这样吗?
今天忽然想起来,于是写了代码做一下验证,用Ildasm看一下
实际上是分配了一次,只所以这样,是编译器进行了优化。
最新文章
- android性能优化练习:过度绘制
- es6新特性(一)
- C#设计模式(23)——备忘录模式(Memento Pattern)
- 转!!Java学习之自动装箱和自动拆箱源码分析
- Sybase ASE报错:server Error: 8242, Severity: 16, State: 1
- Linux下安装memcached
- [BZOJ]3243 向量内积(Noi2013)
- python并发编程之多线程基础知识点
- EasyUI datagrid 的多条件查询
- SQL反模式学习笔记20 明文密码
- Mike and strings CodeForces - 798B (又水又坑)
- Xamarin.Android 使用 SQLite 出现 Index -1 requested, with a size of 10 异常
- web基础,用html元素制作web页面
- CZK 的饮料店
- Python+Selenium笔记(十七):操作cookie
- ECMAScript5新特性之isSealed、seal
- Mcode的介绍
- 在C#中使用依赖注入
- LoadRunner:VuGen开发脚本步骤(二)
- Java中的IO流(三)
热门文章
- Ceilometer和Gnocchi的监控架构解析
- 在linux中设置优先使用ipv4,而不是ipv6
- Ruby on Rails框架(1)-安装全攻略
- FCN笔记
- C# WinForm MessageBox弹窗倒计时的自动关闭
- maven仓库失效的情况下搭建maven项目
- 基础学习笔记之opencv(3):haartraining生成.xml文件过程[转]
- 006 GET API
- leetcode 402. Remove K Digits 、321. Create Maximum Number
- kotlin单个文件及文件夹复制例子