C#基础知识点总结

1.C#的托管资源和非托管资源

  托管资源:一般是指由CLR(Common Languge Runtime)控制的内存资源,这些资源的管理由CLR控制。

  非托管资源:不受CLR控制的资源,比如文件流,数据的连接,系统的窗口句柄,打印机资源等。

2.有关GC

是根据程序的需要自动分配和回收的内存的过程。CLR的GC只能释放托管资源。

3.堆和栈的区别

栈是编译期间就分配好的一块连续对的内存,堆是程序运行期间动态分配的内存。

栈保持先进后出原则,是一片的连续的区域由系统自动分配和维护。堆是无序的是一片不连续的内存域。

引用类型总是分配到堆上。值类型和指针总是分配到被定义的地方,不一定总是分派到栈上。

4.值类型和引用类型

值类型只需要一段单独的内存,用于存储实际数据。

引用类型需要两端内存,第一段存储实际数据位于堆上,第二段是引用,指向存储实际数据的位置

原文地址:https://www.cnblogs.com/luluyouwei/p/12798093.html