随笔 - 307  文章 - 0  评论 - 30  阅读 - 79万
11 2012 档案
C#中为什么需要装箱拆箱操作?
摘要://当我们如下时: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 阅读(530) 评论(0) 推荐(0) 编辑
[转].NET垃圾回收机制解释
摘要:转自:http://www.cnblogs.com/mirobright/archive/2009/11/21/1607773.html尽管在.NET framework下我们并不需要担心内存管理和垃圾回收(Garbage Collection),但是我们还是应该了解它们,以优化我们的应用程序。同时,还需要具备一些基础的内存管理工作机制的知识,这样能够有助于解释我们日常程序编写中的变量的行为。在本文中我们将深入理解垃圾回收器,还有如何利用静态类成员来使我们的应用程序更高效。* 更小的步伐 == 更高效的分配为了更好地理解为什么更小的足迹会更高效,这需要我们对.NET的内存分配和垃圾回收专研得更 阅读全文
posted @ 2012-11-29 22:35 kkmm 阅读(166) 评论(0) 推荐(0) 编辑
[转]C++中的【菱形虚继承】深入剖析
摘要:转自:http://masefee.blog.51cto.com/1737284/813812转眼间有过了一个月了,自从【C/C++语言入门篇】连载结束后,已经很久没有写博了。最近一直忙着本科毕业论文和工作上的任务,加上一个对于我来说非常重要的事情正在进行中。所以近段时间脑子一直处于绷紧状态,发现自己的脑细胞还真是不够用。加油!今天有朋友问到一个问题,那就是在C++的多重继承中,出现菱形状继承的情况下,在构造对象时的内存分布及构造函数的调用流程上出现了问题。最后跟他解释清楚之后,我感觉还是有必要把这个过程写下来,有什么说得不对的地方请大家提出宝贵意见,在此感谢,同时知道这里面的朋友可以直接略过 阅读全文
posted @ 2012-11-29 16:37 kkmm 阅读(222) 评论(0) 推荐(0) 编辑
[转]c++之菱形继承
摘要:前天和大学室友吃烧烤,其中谈到菱形继承的问题,突然发现脑中对这个几乎空白,所以晚上回来就上网搜了搜,言归正传,说到菱形继承,就要说到虚继承的概念,对于虚继承,就是为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类。这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射。这样不仅就解决了二义性问题,也节省了内存,避免了数据不一致的问题。class 派生类名:virtual 继承方式 基类名virtual是关键字,声明该基类为派生类的虚基类。在多继承情况下,虚基类关键字的作用范围和继承方式关键字相同,只对紧跟其后 阅读全文
posted @ 2012-11-29 16:20 kkmm 阅读(161) 评论(0) 推荐(0) 编辑
[转]判断两个链表是否有公共节点并返回第一个公共节点
摘要:转自:http://blog.csdn.net/randyjiawenjie/article/details/6329572判断两个链表是否有公共节点的方法最简单的就是遍历到每个链表的最后一个节点,看他们是否是同一个节点:如果是同一个节点的话,那么两个链表肯定有公共节点:解释:因为链表是线性结构,不想树那样的非线性分叉结构typedef struct LNode{ int data; struct LNode *next; }LNode, *LinkList; 一个链表有唯一的一个后序节点:如果两个链表中出现了公共节点,那么从该点开始,后面的节点都是公共的,肯定链表的最... 阅读全文
posted @ 2012-11-22 11:14 kkmm 阅读(472) 评论(0) 推荐(0) 编辑
镜像二叉树C++代码
摘要:本文为镜像二叉树的C++代码,为了代码简洁,将空节点和某个节点具有空孩子的情况放到了同一个逻辑下进行判断。typedef struct{ int value; BTNode *pLeft; BTNode *pRight;}BTNode;void BTMirror(BTNode *pHead){ if (pHead == NULL) return; BTNode *pTmp; pTmp = pHead->pLeft; pHead->pLeft = pHead->pRight; pHead->pRight = pTmp; BTMi... 阅读全文
posted @ 2012-11-22 10:33 kkmm 阅读(379) 评论(0) 推荐(0) 编辑
在旋转数组中寻找最小值
摘要:#include <iostream>using namespace std;#define LEN 12int FindMinInRotateArray(int *arr, int len, int *min){ if (arr == NULL || len <= 0 || min == NULL) { return -1; } if (len == 2) { *min = arr[1]; return 1; } int mid = len/2; if (arr[0] < arr[mid]) { ... 阅读全文
posted @ 2012-11-21 22:46 kkmm 阅读(277) 评论(0) 推荐(0) 编辑
考虑线程安全且效率高的单例C++代码
摘要:本文即考虑了线程安全,又保证了效率,代码为单例,语言为C++,代码如下:#include <iostream>using namespace std;void Lock(){ //some mutex code}void UnLock(){ //some mutex code}class Singleton{public: static Singleton* GetInstance() { if (m_Instance == NULL) // 如果已经创建了单例,那么就不用每次进去加锁了 { ... 阅读全文
posted @ 2012-11-21 22:05 kkmm 阅读(308) 评论(0) 推荐(0) 编辑
考虑线程安全但效率不高的单例C++代码
摘要:本文的单例代码考虑了线程安全,但是由于每次Lock() UnLock()所花费的时间比较多,所以效率不高,代码如下:#include <iostream>using namespace std;void Lock(){ //some mutex code}void UnLock(){ //some mutex code}class Singleton{public: static Singleton* GetInstance() { Lock(); if (m_Instance == NULL) // 如果在这句... 阅读全文
posted @ 2012-11-21 22:03 kkmm 阅读(232) 评论(0) 推荐(0) 编辑
不考虑线程安全的初级单例C++代码
摘要:本文实现的是不考虑线程安全的初级单例Singleton的C++代码,目的是为了学习单例,考虑线程安全的代码放在后面的blog里。#include <iostream>using namespace std;class Singleton{public: static Singleton* GetInstance() // 得到单例 { if (m_Instance == NULL) { m_Instance = new Singleton(); cout<<"m_Instance ... 阅读全文
posted @ 2012-11-21 21:50 kkmm 阅读(277) 评论(0) 推荐(0) 编辑
关于static成员变量的初始化的实验
摘要:#include <iostream>using namespace std;class A{public: A() { //test = 1; //aa } static int test;};int A::test = 1; //bbint main(){ cout<<A::test<<endl; return 1;}根据C++ Primer中所叙述,static成员必须在类外进行初始化,而不能在构造函数内进行初始化,于是进行如下实验:1 令aa行enable,令bb行disable,链接提示:1... 阅读全文
posted @ 2012-11-21 21:34 kkmm 阅读(3589) 评论(1) 推荐(0) 编辑
[转]确认是否有socket泄露
摘要:问题定位步骤:1、 用root帐户 遍历 /proc/进程ID/fd目录,如果该目录下文件数比较大(如果大于10,一般就属于socket泄漏),根据该进程ID,可以确认该进程ID所对应的名称。2、 重启程序恢复服务,以便后续查找问题。3、 strace 该程序并记录strace信息。strace –p 进程ID >>/tmp/stracelog.log 2>&14、 查看 /proc/进程ID/fd 下的文件数目是否有增加,如果发现有增加,记录上一个socket编号,停止strace5、 确认问题代码的位置。打开/tmp/stracelog.log,从尾部向上查找cl 阅读全文
posted @ 2012-11-21 11:19 kkmm 阅读(359) 评论(0) 推荐(0) 编辑
止语的好处[转]
摘要:(1)真正做到‘善护口业,不讥他过’,使自己能尽最大的努力修好十善业,积累往生的福德资粮。同时可以防止辛苦修积来的一点福报从说话之中流失掉,也可避免因口过而招来的麻烦和灾祸,在较大的程度上断绝了菩提道上的业因业缘。 (2)能够避免犯破六和敬,破坏正法道场的重罪。谚语有谓‘人平不语,水平不流’,易经上也说‘吉人寡语’。凡夫喜欢杂心闲话,其实是由于内心里贪瞋痴慢的烦恼习气太重,不说话就难受,总要找话题来消遣消遣,太喜欢说话的人确实是心不在道。而且可以说明他几乎还没有觉悟,还没有真正生起了生死出三界之心。如果是真正的修道人,心里常存惭愧,一定会珍惜光阴,把精力用在听经、讲经、看书、念佛、拜佛。凡夫说 阅读全文
posted @ 2012-11-15 10:46 kkmm 阅读(371) 评论(0) 推荐(0) 编辑
WCF、WPF、Silverlight和区别(转)
摘要:SilverLight可以看作是WPF的一个简化版本,或者一个轻量版本。 SilverLight是基于浏览器插件的,在浏览器中运行,服务器端不需要部署任何环境,客户端只需要安装Runtime浏览器插件,无须安装.net Framework 3.0。所以,SilverLight的运行环境不受操作系统和浏览器的种类限制(更准确的说,是受到较少的限制)。 WPF可以编写Web程序或者桌面应用程序,可以直接编译为独立运行的.Exe文件。WPF运行时必须安装.net Framework 3.0。这就要求WPF目前运行的操作系统必须是Windows Vista或者Windows XP SP2。 此外,Si 阅读全文
posted @ 2012-11-15 10:20 kkmm 阅读(7836) 评论(1) 推荐(1) 编辑
自己define size_t编译出错
摘要:今天写程序,突然发现之前的一个程序编译会出错,奇怪之,之前都好好的呀。后来定位问题,发现该程序引用了本工程common下的typedefine.h,而其中有这样的代码在此期间被添加:#ifdef __x86_64__#define size_t unsigned long#else#define size_t unsigned int#endif而这个程序还自己引用了 #include <string> string里本身就include了系统的 size_t ,这样就冲突了。解决办法:不要自己写size_t,而是#include <include/linux/types.h 阅读全文
posted @ 2012-11-15 10:19 kkmm 阅读(382) 评论(0) 推荐(0) 编辑

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示