2011年7月20日

栈,堆,值类型,引用类型,装箱,拆箱(转)

摘要: [转载文章]6个重要的.NET概念:栈,堆,值类型,引用类型,装箱,拆箱引言 本篇文章主要介绍.NET中6个重要的概念:栈,堆,值类型,引用类型,装箱,拆箱。文章开始介绍当你声明一个变量时,编译器内部发生了什么,然后介绍两个重要的概念:栈和堆;最后介绍值类型和引用类型,并说明一些有关它们的重要原理。 最后通过一个简单的示例代码说明装箱拆箱带来的性能损耗。声明变量的内部机制 在.NET程序中,当你声明一个变量,将在内存中分配一块内存。这块内存分为三部分:1,变量名;2,变量类型;3,变量值。 下图揭示了声明一个变量时的内部机制,其中分配的内存类型依据你的变量类型。.NET中有两种类型的内存:栈内 阅读全文

posted @ 2011-07-20 10:38 xcopys 阅读(136) 评论(0) 推荐(0)

C++程序运行时内存布局之----------this到底是什么?(转)

摘要: C++程序运行时内存布局之----------this到底是什么? 先问一个问题,在C++里,成员函数里的this指针和调用此函数的对象地址总是一样的吗?如果你的回答是:不一定。那么至少你是个老手吧,下面的内容你就不用看了;如果你的回答是:是啊,那么强烈建议你看看下面的内容。非静态成员函数,无论是不是虚函数,都隐藏了一个this指针参数。这个参数的目的就是给函数提供一个基地址,以便于函数体内能找到对象的成员变量。那非静态成员函数是如何根据this指针找到成员变量的呢?直接看例子吧1没有虚表的情况view plaincopy to clipboardprint?#include <iost 阅读全文

posted @ 2011-07-20 09:21 xcopys 阅读(204) 评论(0) 推荐(0)

导航