Jon*_*eet 10
只有堆上分配的存储必须进行垃圾回收.
如果值类型变量在堆上,它或者是某个其他类的一部分,或者是一个盒装值,它是一个仅包含值类型值的对象.该值是内存的一部分,当包含对象被垃圾收集时,该内存被"释放".
如果值类型变量在堆栈上,则当返回的方法弹出堆栈帧时,它将使用的内存将被有效地"释放".
请注意,最终在堆栈上的内容以及最终在堆上的内容是一个实现细节,它通过捕获的变量,迭代器块,异步方法,ref参数等变得更加复杂.但是广泛的原则是用于值类型的内存值总是"其他东西"的一部分 - 所以当回收"其他东西"的记忆时,它会被回收.(这不是某种单独的步骤 - 无论是对象还是堆栈框架,值都存在于内存中"其他东西".)
Eup*_*ric -1
值类型存储在堆栈中。这意味着,运行时为每个方法保留指向堆栈顶部的指针,当您从方法返回时,该顶部将向下移动。使该方法中声明的任何变量超出范围。
对于类字段,这些字段存储在具体类的内存中,并作为类本身的一部分进行垃圾收集。
| 归档时间: |
|
| 查看次数: |
1033 次 |
| 最近记录: |