.NET开发

本类阅读TOP10

·NHibernate快速指南(翻译)
·vs.net 2005中文版下载地址收藏
·【小技巧】一个判断session是否过期的小技巧
·VB/ASP 调用 SQL Server 的存储过程
·?dos下编译.net程序找不到csc.exe文件
·通过Web Services上传和下载文件
·学习笔记(补)《.NET框架程序设计(修订版)》--目录
·VB.NET实现DirectDraw9 (2) 动画
·VB.NET实现DirectDraw9 (1) 托管的DDraw
·建站框架规范书之——文件命名

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
堆、栈以及值类型、引用类型

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

栈的特点是快速高效,缺点是有限制,数据不灵活;而堆的特点是灵活方便,数据适应面广泛,但是效率有一定降低。栈的内存分配是自动释放,也就没有释放函数。堆空间的分配总是动态的,虽然程序结束时所有的数据空间都会被释放回系统,但是精确的申请内存/释放内存匹配是良好程序的基本要素,在.NET中会有GC来处理内存的释放。

 

除了接口是个例外,通用类型系统中的类型被分为两类:值类型和引用类型。在使用引用类型时会有一些性能上的问题,因此如果一个系统全部用引用类型,则这个系统的性能会大大减弱;因此.NET Framework 设计者保留了struct 数据类型,而在 java 语言中就没有 struct 数据类型。

 

值类型:

            包括基元类型、用户自定义结构或枚举类型

            继承自System.ValueType类型

            在堆栈上分配

            通过拷贝赋值

            默认通过值来传递参数,除非用ref关键字

 

引用类型:

            C#预定义的引用类型包括objectstring类型,用户定义的引用类型可以是接口类型、类类型和委托类型

            继承自System. Object类型

            在托管堆上用“new”关键字分配

            通过引用赋值

            可能出现几个引用指向同一个对象,因此对一个变量的操作会影响另一个变量所引 用的同一对象

            用引用来传递变量




相关文章

相关软件