如果我有堆栈分配值类型清理它们? GC只对堆好吗?
答案 0 :(得分:21)
如果值在堆栈上,那么当当前堆栈帧“弹出”(通过返回的方法)时,值会被有效清理......不会有任何终结器调用或类似的东西,但这些值所用的内存将在下一次堆栈变得高时重复使用。
请注意,值类型不是总是在堆栈上分配。特别是,它们通常被分配为其他对象的一部分(例如,具有int
成员的类)或者它们可以被装箱。
答案 1 :(得分:4)
堆栈分配值会自动消失,包含它们的堆栈帧(即从方法返回时)。
答案 2 :(得分:0)
堆栈自动工作,不需要显式内存释放