.NET中栈和堆有何区别?值类型和引用类型如何装箱拆箱?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1727个文字,预计阅读时间需要7分钟。
6个.NET重要概念:栈、堆、值类型、引用类型、装箱、拆箱。本文主要介绍.NET中的6个重要概念:栈、堆、值类型、引用类型、装箱、拆箱。当你声明一个变量时,编译器会决定变量的存储位置和类型。
6个重要的.NET概念:栈,堆,值类型,引用类型,装箱,拆箱 引言本篇文章主要介绍.NET中6个重要的概念:栈,堆,值类型,引用类型,装箱,拆箱。文章开始介绍当你声明一个变量时,编译器内部发生了什么,然后介绍两个重要的概念:栈和堆;最后介绍值类型和引用类型,并说明一些有关它们的重要原理。
最后通过一个简单的示例代码说明装箱拆箱带来的性能损耗。
声明变量的内部机制在.NET程序中,当你声明一个变量,将在内存中分配一块内存。这块内存分为三部分:1,变量名;2,变量类型;3,变量值。
下图揭示了声明一个变量时的内部机制,其中分配的内存类型依据你的变量类型。.NET中有两种类型的内存:栈内存和堆内存。在接下来的内容中,我们会了解到这两种类型的详细内容。
栈和堆
为了明白什么是栈和堆,先让我们看下下面示例代码的内部机制:
public void Method1(){ // Line 1 int i=4; // Line 2 int y=2; //Line 3 class1 cls1 = new class1(); }
这里一共有3行代码。让我们一下逐行看一下它们是如何执行的:
第1行:当这行代码执行时,编译器为它分配一小块栈内存。
本文共计1727个文字,预计阅读时间需要7分钟。
6个.NET重要概念:栈、堆、值类型、引用类型、装箱、拆箱。本文主要介绍.NET中的6个重要概念:栈、堆、值类型、引用类型、装箱、拆箱。当你声明一个变量时,编译器会决定变量的存储位置和类型。
6个重要的.NET概念:栈,堆,值类型,引用类型,装箱,拆箱 引言本篇文章主要介绍.NET中6个重要的概念:栈,堆,值类型,引用类型,装箱,拆箱。文章开始介绍当你声明一个变量时,编译器内部发生了什么,然后介绍两个重要的概念:栈和堆;最后介绍值类型和引用类型,并说明一些有关它们的重要原理。
最后通过一个简单的示例代码说明装箱拆箱带来的性能损耗。
声明变量的内部机制在.NET程序中,当你声明一个变量,将在内存中分配一块内存。这块内存分为三部分:1,变量名;2,变量类型;3,变量值。
下图揭示了声明一个变量时的内部机制,其中分配的内存类型依据你的变量类型。.NET中有两种类型的内存:栈内存和堆内存。在接下来的内容中,我们会了解到这两种类型的详细内容。
栈和堆
为了明白什么是栈和堆,先让我们看下下面示例代码的内部机制:
public void Method1(){ // Line 1 int i=4; // Line 2 int y=2; //Line 3 class1 cls1 = new class1(); }
这里一共有3行代码。让我们一下逐行看一下它们是如何执行的:
第1行:当这行代码执行时,编译器为它分配一小块栈内存。

