在带有参数的堆栈上... 但是 .....
1)对于引用类型,只有引用存储在堆栈上而不是它所引用的对象上.实际对象存储在堆上.
2)对于值类型,实际值存储在堆栈中.
现在,当方法中的执行流程到达结束括号时,堆栈上的值类型数据将被销毁,然后,堆上的引用类型对象(其引用位于此方法的堆栈中)将被移交给垃圾回收由垃圾收集器本身决定的适当时间收集的系统.
它是JIT编译器的一个实现细节.它会非常努力地将本地变量存储在CPU寄存器中,效率非常高.堆栈是通常的后备存储,以防没有足够的寄存器来存储所有局部变量.
例如,x86和x64抖动之间的巨大差异.x64有更多可用的寄存器.这也适用于传递给方法的参数.x86允许2在CPU寄存器中传递,x64允许4.加上可以存储在FPU堆栈或XMM寄存器中的任何内容.因此,实际上有四个不同的位置可以存储局部变量.
| 归档时间: |
|
| 查看次数: |
1087 次 |
| 最近记录: |