在" .NET的堆和栈01,基本概念、值类型内存分配"中,了解了"堆"和"栈"的基本概念,以及值类型的内存分配。我们知道:当执行一个方法的时候,值类型实例会在"栈"上分配内存,而引用类型实例会在"堆"上分配内存,当方法执行完毕,"栈"上的实例由操作系统自动释放,"堆"上的实例由.NET Framework的GC进行回收。


在" .NET的堆和栈02,值类型和引用类型参数传递以及内存分配"中,我们了解了值类型参数和引用类型参数在传递时的内存分配情况。


在" .NET的堆和栈03,引用类型对象拷贝以及内存分配"中,我们了解了在拷贝引用类型对象时的内存分配情况。

 

而本篇的重点要放在:对托管和非托管资源的垃圾回收、处理以及内存分配情况。

 

主要包括:
什么样的对象被GC认为是垃圾?
GC如何回收?
    □ GC对托管堆中对象的回收
    □ GC对非托管堆中对象的回收、处理
        ※ 对资源的回收
            ○ 通过析构函数回收
            ○ 通过实现IDisposable接口回收
        ※ 对静态值类型变量的处理
        ※ 对静态引用类型变量的处理
GC何时回收?
GC回收之后,又执行哪些操作?       

 

当运行时有新的引用对象产生,将会被放到托管堆中这组对象的最上面。

 

Sample { //析构函数 ~Sample() { } }

相关文章:

  • 2021-09-22
  • 2021-06-21
  • 2022-01-22
  • 2021-08-03
  • 2021-05-22
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-21
  • 2022-12-23
  • 2021-11-09
  • 2021-11-17
  • 2021-11-12
  • 2022-12-23
  • 2022-03-02
相关资源
相似解决方案