2012年11月29日
摘要: //当我们如下时:for (int i =0; i < arr.Length; i++){ // }//我们更因该这样:int L = arr.Length;for (int i =0; i < L; i++){ // }因为i < array.Length会调用拆箱操作。那么for循环运行很多次的时候,会导致效率的下降。所以我们需要提前拆箱提高效率。再看一个例子for (int i = 0; i < 1000000; i++){ Console.WriteLine("{0}", i);}这里的Console.WriteLine("{0}& 阅读全文
posted @ 2012-11-29 22:50 kkmm 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/mirobright/archive/2009/11/21/1607773.html尽管在.NET framework下我们并不需要担心内存管理和垃圾回收(Garbage Collection),但是我们还是应该了解它们,以优化我们的应用程序。同时,还需要具备一些基础的内存管理工作机制的知识,这样能够有助于解释我们日常程序编写中的变量的行为。在本文中我们将深入理解垃圾回收器,还有如何利用静态类成员来使我们的应用程序更高效。* 更小的步伐 == 更高效的分配为了更好地理解为什么更小的足迹会更高效,这需要我们对.NET的内存分配和垃圾回收专研得更 阅读全文
posted @ 2012-11-29 22:35 kkmm 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 转自:http://masefee.blog.51cto.com/1737284/813812转眼间有过了一个月了,自从【C/C++语言入门篇】连载结束后,已经很久没有写博了。最近一直忙着本科毕业论文和工作上的任务,加上一个对于我来说非常重要的事情正在进行中。所以近段时间脑子一直处于绷紧状态,发现自己的脑细胞还真是不够用。加油!今天有朋友问到一个问题,那就是在C++的多重继承中,出现菱形状继承的情况下,在构造对象时的内存分布及构造函数的调用流程上出现了问题。最后跟他解释清楚之后,我感觉还是有必要把这个过程写下来,有什么说得不对的地方请大家提出宝贵意见,在此感谢,同时知道这里面的朋友可以直接略过 阅读全文
posted @ 2012-11-29 16:37 kkmm 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 前天和大学室友吃烧烤,其中谈到菱形继承的问题,突然发现脑中对这个几乎空白,所以晚上回来就上网搜了搜,言归正传,说到菱形继承,就要说到虚继承的概念,对于虚继承,就是为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类。这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射。这样不仅就解决了二义性问题,也节省了内存,避免了数据不一致的问题。class 派生类名:virtual 继承方式 基类名virtual是关键字,声明该基类为派生类的虚基类。在多继承情况下,虚基类关键字的作用范围和继承方式关键字相同,只对紧跟其后 阅读全文
posted @ 2012-11-29 16:20 kkmm 阅读(158) 评论(0) 推荐(0) 编辑