问题描述 link中什么一次分配,什么是二次分配?它们的区别是什么? link中什么一次分配,什么是二次分配?它们的区别是什么? 解决方案 http://www.360doc.com/content/11/0504/11/1919377_114251467.shtml 时间: 2024-09-14 15:18:59
问题描述 link中如何对一个变量二次分配内存?二次分配的效率和一次分配是不是有损失? link中如何对一个变量二次分配内存?二次分配的效率和一次分配是不是有损失? 解决方案 看情况,如果初始化的变量没有用到,可以先指向null 解决方案二: 先释放,然后就可以指向新的对象了,.net clr会自动垃圾回收
问题描述 link中函数每次执行不是都需要一个堆栈么?还是按照线程分配的堆栈? link中函数每次执行不是都需要一个堆栈么?还是按照线程分配的堆栈? 解决方案 每个线程一个堆栈,你搞错了. 每次调用函数,都在同一个堆栈上往上延伸.一个堆栈保存着从入口的那个函数到执行的那个函数的全部的上下文.
问题描述 link中list = new List<T>(10);了以后,还是可以添加超过10个元素 link中list = new List(10);了以后,还是可以添加超过10个元素?这是为什么? 解决方案 我说了,带有容量的构造函数版本是性能选项,而不是功能.你要限制List最好的办法是直接使用数组(对于值类型使用Nullable<T>) 解决方案二: capcaty是容量,比如你设置20个,但不是说里面有20个元素,当你add元素进去,只要数量不超过capcaty,list
问题描述 link中为什么说字符串是只读的,但是我可以改变字符串,这是怎么回事? link中为什么说字符串是只读的,但是我可以改变字符串,这是怎么回事? 解决方案 字符串本来就是只读的.但是它的运算符重载过了,所以用+连接字符串,或者用=赋值,会自动产生一个新的字符串,而不会改变之前的那个. 解决方案二: string是一种很特殊的数据类型,它既是基元类型又是引用类型,在编译以及运行时,.Net都对它做了一些优化工作,正式这些优化工作有时会迷惑编程人员,使string看起来难以琢磨,这篇文章分上
问题描述 link中能不能不通过Add直接得到10个元素的列表?new List<int>(10)为什么不行? link中能不能不通过Add直接得到10个元素的列表?new List(10)为什么不行? 解决方案 capacity和count不是一个概念capacity是容量,count是实际值 解决方案二: var list = new List<int>(new int[10]); 解决方案三: 可以这样的. var list = new List { 1 2 3 4 5 6
问题描述 link中的函数知道了它的地址可以复制么?如何调用成员函数而不经过实例化? link中的函数知道了它的地址可以复制么?如何调用成员函数而不经过实例化? 解决方案 没实力化,成员就没有分配空间,也没有地址,你怎么用 解决方案二: 复制啥,函数还复制,直接用就是了
问题描述 link中capcaty和count有什么区别?如何设置count? link中capcaty和count有什么区别?如何设置count? 解决方案 Count不能设置,只能读.否则不就乱套了.你胡乱改小了,那多余的数据去了哪里?你胡乱改大了,那新添的数据从哪里来? 解决方案二: capcaty是容量,比如你设置20个,但不是说里面有20个元素,当你add元素进去,只要数量不超过capcaty,list是不会扩容的,当你添加超过capcaty个元素时,他会自动扩容,这样减少频繁的分配内