gpt4 book ai didi

c# - 垃圾收集器将如何处理值类型和引用类型

转载 作者:太空狗 更新时间:2023-10-29 19:51:59 25 4
gpt4 key购买 nike

垃圾收集器将如何处理值类型和引用类型,何时释放内存值类型和引用类型。我对此有点困惑任何人都可以解释一下,同时垃圾收集器删除释放值类型或引用类型的内存,先删除

最佳答案

您以错误的方式思考问题。不要再考虑“值类型”和“引用类型”了。相反,开始考虑变量,以及这些变量是短命还是长命

垃圾收集堆的目的是回收与长期变量关联的存储。堆栈的目的是回收与短期变量关联的存储。生活变量。

人们会试图告诉你“值类型在栈上”和“引用在堆上”等等,这是令人困惑的废话。 变量进入堆栈或堆(或寄存器——每个人都忘记了寄存器),变量可以是值类型或引用类型。

你一直在问“垃圾收集器会先移除哪个?”这个问题无法回答。垃圾收集堆不保证回收内存的顺序。当激活帧从堆栈中弹出时,短期存储(堆栈)将被回收。 但是,如果运行时可以确定不会再次访问该引用,则 C# 语言允许垃圾收集器在帧从堆栈中弹出之前清理短期存储引用的存储。基本上,何时回收存储是运行时的一个实现细节,随时可能更改

关于c# - 垃圾收集器将如何处理值类型和引用类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14038544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com