摘要: 对和栈的主要的区别由以下几点: 1、管理方式不同; 2、空间大小不同; 3、能否产生碎片不同; 4、生长方向不同; 5、分配方式不同; 6、分配效率不同; 管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来说,释放工作由程序员控制,容易产生memory leak。 空间大小:一般来讲在32位系统下,堆内存可以达到4G的空间,从这个角度来看堆内存几乎是没有什么限制的... 阅读全文
posted @ 2009-04-07 14:04 北北 阅读(659) 评论(0) 推荐(0) 编辑
摘要: 对于.NET的初学者来,一个很令人困惑的问题是:从高级语言(如C#和Visual Basic)到托管语言再到机器语言究竟是一个怎样的过程。掌握这个过程也是理解.NET语言互操作性(也就是语言独立性的核心原则)的关键,并且也关系到二进制兼容性的问题。尽管本书一直尝试不探讨这些的底层细节实现而主要集中讲述如何最好地应用.NET,然而对CLR产生代码过程有一个概览对理解她的内部机理还是大有益处的。不仅如... 阅读全文
posted @ 2009-04-07 13:44 北北 阅读(1337) 评论(0) 推荐(0) 编辑
摘要: 大李没告诉我接口与抽象类的区别,什么时候用接口,什么时候用实现继承。弄得我中饭也没吃好,老在琢磨这事,这不,一吃完饭,我就冲上楼,一个房间一个房间转,到处找大李。过了好一阵,这老哥才和几个同事说说笑笑地回到办公室,我立即走上前,半请半拉地把他拽到电脑旁。“大李哥,我实在想得头晕,既然在VB.NET中接口有了这么大的发展空间,在形式上与抽象类如此相似,那么它们有什么区别?什么时候用接口呢... 阅读全文
posted @ 2009-03-31 22:47 北北 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 欢迎浏览本文的后续文章: C#中的委托和事件(续) PDF 浏览:http://www.tracefact.net/Document/Delegates-and-Events-in-CSharp.pdf 文中代码在VS2005下通过,由于VS2003(.Net Framework 1.1)不支持隐式的委托变量,所以如果在一个接受委托类型的位置直接赋予方法名,在VS2003下会报错,解决办法是显式... 阅读全文
posted @ 2009-03-31 15:01 北北 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 其它方式:工厂方式,构造函数方式,原型方式都各有各的大缺陷,这里就不一一介绍了,想了解的可以去看一下这本著作的第3章节。 1. 混合构造函数/原型方式 function Car(sColor, iDoors, iMpg) { this .color = sColor; this .doors = iDoors; this .mpg = iMpg; thi... 阅读全文
posted @ 2009-03-31 14:59 北北 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 说到数据库,我认为不能不先谈数据结构。1996年,在我初入大学学习计算机编程时,当时的老师就告诉我们说:计算机程序=数据结构+算法。尽管现在的程序开发已由面向过程为主逐步过渡到面向对象为主,但我还是深深赞同8年前老师的告诉我们的公式:计算机程序=数据结构+算法。面向对象的程序开发,要做的第一件事就是,先分析整个程序中需处理的数据,从中提取出抽象模板,以这个抽象模板设计类,再在其中逐步添加处理其数据... 阅读全文
posted @ 2009-03-27 09:46 北北 阅读(622) 评论(4) 推荐(0) 编辑
摘要: 这是一个经常被时时提出来的问题,很多时候我们以为理解了、懂了,但深究一下,我们却发现并不懂。 方法是我们每天都在写得,很多程序员大多都使用实例化方法,而很少使用静态方法,问原因也说不出来所以然,或者简单的回答两者定义的区别,静态方法不需要new就可以使用 实例化方法需要new了以后才可以使用。。。。我们真的理解了吗? 从实际项目开发说起,这里有开发项目的三种方式: 开发项目中把BLL和DAL分开,... 阅读全文
posted @ 2009-03-23 15:21 北北 阅读(1568) 评论(1) 推荐(2) 编辑
摘要: 反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构造函数等。还可以获得每个成员的名称、限定符和参数等。有了反射,即可对每一个类型了如指掌。如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译时还不知道。 程序代码在编译后生成可执行的应用,我们首先要了解这种... 阅读全文
posted @ 2009-03-23 14:49 北北 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 堆和堆栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态... 阅读全文
posted @ 2009-03-23 14:38 北北 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 我们都知道,c#的两大数据类型分别为值类型和引用类型。很多人或许闭着眼睛都能说出值类型包括简单类型、结构体类型和枚举类型,引用类型包括自定义类、数组、接口、委托等,但是当被问及到二者之间的联系和区别,什么时候用struct什么时候用class时,就常常混淆不清了。为此,了解值类型和引用类型的本质差异就变的很有必要了。 值类型直接存储其值,变量本身就包含了其实例数据,而引... 阅读全文
posted @ 2009-03-23 14:24 北北 阅读(7121) 评论(1) 推荐(3) 编辑