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

详解类型、变量与对象

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

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

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

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

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

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

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

      2.Stack overflow

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

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

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

 

二、C#语言的类型系统

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

 

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

 

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

 

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

 

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

 

  • 装箱与拆箱

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

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

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

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

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

 

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

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

 

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

上一篇:SQL开发中容易忽视的一些小地方( 三)


下一篇:JDBC常见面试题集锦