摘要: 我们搞程序的多多少少都了解点算法。总体来讲,算法是什么?算法就是“时间”和“空间”的互换策略。我们常常考究一个算法的时间复杂度或空间复杂度,如果我们有绝对足够的时间或空间,那么算法就不需要了,可惜这种条件是不存在的,只是在某些情况下相对来说我们不用去考虑其中一个。今天我们讨论的“缓存”,自然就是“用空间换时间”的算法。 缓存就是把一些数据暂时存放于某些地方,可能是内存,也有可能硬盘。总之,目的就是为了避免某些耗时的操作。我们常见的耗时的操作,比如数据库的查询、一些数据的计算结果,或者是为了减轻服务器的压力。其实减轻压力也是因查询或计算,虽然短耗时,但操作很频繁,累加起来也很长,造成严重排队.. 阅读全文
posted @ 2013-04-22 16:43 Skysper 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 刚开始学习C#的时候,就听说CLR对于String类有一种特别的内存管理机制:有时候,明明声明了两个String类的对象,但是他们偏偏却指向同一个实例。如下:String s1 ="Hello";String s2 ="Hello"; //s2和s1的实际值都是Hellobool same = (object) s1 == (object) s2;//这里比较s1、s2是否引用了同一个对象实例//所以不能写作bool same = s1 == s2; //因为String类重载了==操作符来比较String对象包含的实际值 这里的same会被赋值为... 阅读全文
posted @ 2013-04-22 15:46 Skysper 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 很多C#的教材都会强调对象相等的概念。我们都知道,在C#的世界里存在两种等同性。一种是逻辑等同性:如果两个对象在逻辑上代表同样的值,则称他们具有逻辑等同性。另一种是引用等同性:如果两个引用指向同一个对象实例,则称他们具有引用等同性。 众所周知,Object类型有一个名为Equals的实例方法可以用来确定两个对象是否相等。Object的Equals的默认实现比较的是两个对象的引用等同性。而Object的派生类ValueTpye重写了Equals方法,它比较的是两个对象的逻辑等同性。也就是说,在C#里,引用类型的默认Equals版本关注的是引用等同性,而值类型关注的是逻辑等同性。当然,这并不... 阅读全文
posted @ 2013-04-22 14:43 Skysper 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 首先,我觉得,一个概念,如果不理解也不影响使用的话,那么,就没必要去理解它、去学习它。闭包就是这样一个概念,你不理解它也能很好的用它。俺这两年写as3程序,是天天在和它打交道,甚至有过一个function套一个,一个方法中套了20多个function的极端例子,但从未深究过它是怎么实现的,它就像水和空气一样,我们不需要知道水是H2O,空气是氧气氮气二氧化碳等的混合物,也活的好好的。 其次,我觉得,网上对闭包概念的解释都太狭隘了,看得人蛋疼,就像回到了i++,++i时代一样。如果非要去理解这个概念,像那样去理解,则收获太小,不值得。 维基百科上对闭包的解释就很经典:在计算机科学中,闭包(... 阅读全文
posted @ 2013-04-22 11:35 Skysper 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 由于Windows phone 8的开发需要Windows 8的环境,所以想要在现有的Windows 7系统上安装双系统来满足开发的需要(在VMWare中安装了Windows 8以及Windows Phone 8 SDK等Develper Tools,不知是否是因为VMVare本身的虚拟技术和Windows Phone模拟器相冲突,从而使得在Visual Sutodio Express For Windows Phone 中的调试时,连接模拟器出错,不知是否有大神成功了,求指教)。在网上查找到有关资料后,便开始着手准备了。我想我的胆子还是不小的,直接就压缩了最后一个盘符(F:),预留出来的一个 阅读全文
posted @ 2013-04-22 10:51 Skysper 阅读(1129) 评论(0) 推荐(0) 编辑