《C#入门详解》刘老师 详解类型、变量与对象

详解类型、变量与对象

一、类型在C#语言中的作用,一个C#类型中所包含的信息有:

  • 存储此类型变量所需的内存空间大小

  • 此类型的值可表示的最大、最小值范围

  • 此类型所包含的成员(如方法、属性、事件等)

  • 此类型由何基类派生而来

  • 程序运行的时候,此类型的变量在分配在内存的什么位置

          1.Stack简介(栈给方法调用来用的)

      2.Stack overflow

      3.Heap简介(堆用来存储对象的)

      4.使用Performance Monitor查看进程的堆内存使用量

      5.关于内存泄漏(堆内存泄漏)

 

二、C#语言的类型系统

 

 

 

 

 

  • 装箱与拆箱

   1.装箱:  int x = 100; object obj = x ;

    (内存中,先把栈上值类型的值,在堆上找一块可以存储的空间,把数值100放入到堆上。然后在把堆这边的地址放入到栈上的位置里去)

    装箱指的是把栈上的值类型的值封装成object类型的实例搁在堆上,称之为装箱

   2.拆箱:  与装箱相反,把值从堆内存中拷贝过来(注意不是拷贝地址),然后放入到栈内存的变量中

    把堆上面object类型的实例的值按照要求拆成目标数据类型,存储到栈上去,称之为拆箱

 

三、栈内存分配地址,是由高地址向低地址去分配,直到分配到栈的栈顶之后,没有内存可以分配了,这个时候栈就溢出了

 

posted @ 2020-09-21 22:47  遥想公瑾  阅读(193)  评论(0编辑  收藏  举报