摘要: 在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对 于问题领域本质的理解、对于设计意图的理解是否正确、合理。本文将对它们之间的区别进行一番剖析,试图给开发者提供一个在二者之间进行选择的依据。 理解抽象... 阅读全文
posted @ 2013-10-09 10:14 小麻雀 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 在使用面向对象的思想进行系统设计时,前人共总结出了7条原则,它们分别是:单一职责原则、开闭原则、里氏替换原则、依赖注入原则、接口分离原则、迪米特原则和优先使用组合而不是继承原则。1.单一职责原则(SRP)单一职责原则的核心思想就是:系统中的每一个对象都应该只有一个单独的职责,而所有对象所关注的就是自身职责的完成。它的英文缩写是SRP,英文全称是Single Responsibility Principle。其实单一职责原则的意思就是开发人员经常说的“高内聚、低耦合”。也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个。在设计模式中,所有的设计模式都遵循这一原 阅读全文
posted @ 2013-10-09 10:03 小麻雀 阅读(653) 评论(0) 推荐(0) 编辑
摘要: GridFS是一种将大型文件存储在MongoDB的文件规范:数据库支持以BSON格式保存二进制对象。 但是MongoDB中BSON对象最大不能超过4MB。GridFS 规范提供了一种透明的机制,可以将一个大文件分割成为多个较小的文档。为实现这点,该规范指定了一个将文件分块的标准。每个文件都将在文件集合对象中保存一个元数据对象,一个或多个块对象可被组合保存在一个块集合中。文件如何被分块保存的细节可以参看GridFS Specification。mongo自带有一个实现mongofliles,基本操作如下:列出所有文件:mongofiles list上传一个文件:mongofiles put xx 阅读全文
posted @ 2013-04-27 10:38 小麻雀 阅读(1515) 评论(0) 推荐(0) 编辑
摘要: 我在博客堂上也看到不少有关并发控制的文章,我一直是推荐使用时间戳来解决的。比如我们在SQL Server中的表中定义一个字段为timestamp类型的字段ts,这个字段的值不需要我们进行控制的。在Insert与Update时,数据库会自己进行ts值的更新,因此我们只要在Update时使用:Update xxx wherekey=@keyandts=@ts就可以了,根本不用考虑ts里的值更新。Delete时也最好进行一下判断,用这种方式是可以控制数据并发操作的。只需要在Update与Delete时,判断"影响条数"就可以知道更新是否成功。这一点我想非常方便,但不是所有的数据库 阅读全文
posted @ 2013-03-05 09:38 小麻雀 阅读(662) 评论(0) 推荐(0) 编辑
摘要: 那时候,未来遥远而没有形状,梦想还不知道该叫什么名字。我常常一个人,走很长的路,在起风的时候觉得自己像一片落叶。仰望星空,我想知道:有人正从世界的某个地方朝我走来吗?像光那样,从一颗星到达另外一颗星。后来,你出现了,又离开了。我们等候着青春,却错过了彼此…… ——————题记《星空》,是风靡华人世界的畅销绘本画家几米2009年最新力作。描述了一个关于长大的故事:有个不爱说话... 阅读全文
posted @ 2013-02-19 11:07 小麻雀 阅读(4931) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-02-04 11:57 小麻雀 阅读(518) 评论(0) 推荐(0) 编辑
摘要: 转自http://blog.csdn.net/baby313/article/details/8446268精明的程序员——小程大爱虚伪的大项目在参加软件学院研究中心面试的时候,老师们问我有什么项目经历。记得我当时的回答是这样的:“我的项目经历主要是在Intel公司的一年实习经历,这期间主要参与了两个项目,第一个是做Meego上的多媒体框架,第二个项目是Chromium对html5视频的支持。”老师们听后没有什么反应,但是能够感觉到他们对我的经历非常满意。一个本科生有一些实践经历就已经比较难得了,是在Intel实习,何况是Meego、Chromium、html5这么火(当时Meego正火)的几 阅读全文
posted @ 2013-01-16 15:53 小麻雀 阅读(468) 评论(1) 推荐(1) 编辑
摘要: 在C#中,如何将一个int转换成一个byte array,又如何将一个byte array转换成一个int 至少可以通过三种方法来进行转换。在.NET Framework类库的System名字空间中有个叫做BitConverter的类,它是专门用来进行这种转换的。它有一个GetBytes方法,对于大多数简单的类型来说,该方法都被重载了,它可以返回一个byte array来保存你传递的值。它也有几个ToTypeName方法用来将一个byte array转换成一个基本类型(primitive type):byte[] b = BitConverter.GetBytes( 0xba5eba11 ). 阅读全文
posted @ 2013-01-14 11:07 小麻雀 阅读(21365) 评论(0) 推荐(0) 编辑
摘要: ModelClientValidationRule同时存在多个位置解决方案错误 2280 类型“System.Web.Mvc.ModelClientValidationRule”同时存在于“C:\Program Files\Microsoft ASP.NET\ASP.NET Web Pages\v2.0\Assemblies\System.Web.WebPages.dll”和“C:\Program Files\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll”中 D:\workspace\ecard26b\v 2.60\ 阅读全文
posted @ 2013-01-08 13:32 小麻雀 阅读(270) 评论(0) 推荐(0) 编辑
摘要: MSDTC(分布式交易协调器),协调跨多个数据库、消息队列、文件系统等资源管理器的事务。该服务的进程名为Msdtc.exe,该进程调用系统Microsoft Personal Web Server和Microsoft SQL Server。该服务用于管理多个服务器 . 位置:控制面板--管理工具--服务--Distributed Transaction Coordinator 依存关系:Remote Procedure Call(RPC)和Security Accounts Manager 建议:一般家用计算机涉及不到,除非你启用Message Queuing服务,可以停止。解决办法: 1.. 阅读全文
posted @ 2012-12-17 16:19 小麻雀 阅读(1155) 评论(0) 推荐(0) 编辑
摘要: Socket 编程时,单机最多可以建立多少个 TCP 连接,受到操作系统的影响。Windows 下单机的TCP连接数受多个参数影响:最大TCP连接数[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters] TcpNumConnections = 0x00fffffe (Default = 16,777,214)以上注册表信息配置单机的最大允许的TCP连接数,默认为 16M。这个数值看似很大,这个并不是限制最大连接数的唯一条件,还有其他条件会限制到TCP 连接的最大连接数。最大动态端口数TCP客户端和 阅读全文
posted @ 2012-12-14 10:58 小麻雀 阅读(39416) 评论(0) 推荐(3) 编辑
摘要: .NET Socket开发之异步Socket 在基于.NET的网络服务端的开发中,我们用到和听到的最多的恐怕就是异步Socket了。异步Socket的性能比同步高出很多,但是编写代码比较复杂。因此异步Socket也是网络上讨论比较多的话题。 今天,我们就来讨论一下如何用异步Socket开发网络应用。在此之前我们先讨论两个问题。 一、异步Socket是如何工作的: 那异步Socket是如何工作的呢?我以接收一条消息来说明这个问题。首先,程序向系统投递一个接收数据的请求,并为其指定一个数据缓冲区和回调函数,回调函数用来指示当数据到达后将如何处理,然后我们的程序继续执行下去,当有数据到达的时... 阅读全文
posted @ 2012-12-14 10:57 小麻雀 阅读(765) 评论(0) 推荐(0) 编辑
摘要: .NET Framework 2.0SP1及以后版本提供了一组用于网络通信的增强功能类库,SocketAsyncEventArgs 就是其中最重要的一个,下面是MSDN对这组增强功能的类库的介绍。 System.Net.Sockets.Socket 类有一组增强功能,提供可供专用的高性能套接字应用程序使用的可选异步模式,SocketAsyncEventArgs 类就是这一组增强功能的一部分。该类专为需要高性能的网络服务器应用程序而设计。应用程序可以完全使用增强的异步模式,也可以仅仅在目标热点区域(例如,在接收大量数据时)使用此模式。 这些增强功能的主要特点是可以避免在异步套接字 I/O 量非. 阅读全文
posted @ 2012-10-30 15:23 小麻雀 阅读(3799) 评论(1) 推荐(1) 编辑
摘要: 关于内存泄漏的问题,之前也为大家介绍过,比如:《C++中内存泄漏的检测方法介绍》,是关于C++内存泄漏的。今天为大家介绍的是关于.NET内存泄漏的问题。 前段时间帮项目组内做了一次内存优化,产品是使用c#开发的winForm程序,一直以为.net提供了垃圾收集机制,开发的时候也没怎么注意内存的释放,导致最后的产品做出来之后,运行一个多小时就内存直接崩溃了,看来.net的垃圾收集还是得需要开发者加以控制,也不是万能的啊。 下面将对垃圾收集做以简介,然后描述一下我在内存优化过程中常见的内存泄露及解决方法。 托管堆的内存分配(下文中的托管堆指的是GC堆) 托管堆是以应用程序域为依托的,即每一... 阅读全文
posted @ 2012-10-30 13:38 小麻雀 阅读(492) 评论(0) 推荐(0) 编辑
摘要: 如何把握机会什么是机会,有那些特征1、什么是机会 人人都需要机会,他代表可以让你过得更好的生活,不是代表你可以活下去。对现在生活有帮助的叫工作,对将来有帮助的叫机会。机会在不同人的手中,玩出不同的结果,是有无数的可能,充满变数。工作是按标准做的,谁做结果都一样,做好了你只是符合标准。大众看得出来的是工作,大众看不出来的才是机会。改变人一生命运的叫机会。真正的机会可以照过你一辈子。2、机会是要去寻找 如:好书、好的音乐、好的演讲、好朋友、好的老婆/老公等。你要清淅地知道机会是藏在看起来不是机会的东西中。3、机会是会折旧的,时机很重要 上帝总是在你看起来不需要的时候把机会给你,而在你很需要的时候把 阅读全文
posted @ 2012-10-25 15:35 小麻雀 阅读(2742) 评论(0) 推荐(0) 编辑