(一) 通用试题——内存相关
浴不必江海,要之去垢,马不必骐骥,要之善走.
1. 为什么引用值要放在堆中,而原始值要放在栈中?
能量是守衡的,无非是时间换空间,空间换时间的问题
堆比栈大,栈比堆的运算速度快,对象是一个复杂的结构,并且可以自由扩展,如:数组可以无限扩充,对象可以自由添加属性。将他们放在堆中是为了不影响栈的效率, 需要时通过引用的方式查找到堆中的实际对象地址再进行操作。
相对于简单数据类型而言,简单数据类型就比较稳定,并且它只占据很小的内存。
不将简单数据类型放在堆是因为通过引用到堆中查找实际对象是要花费时间的,而这个综合成本远大于直接从栈中取得实际值的成本。
所以简单数据类型的值直接存放在栈中。
Public Class test { }