栈(Stack)和堆(Heap)
stack 和 heap 在 js 也是有
简单理解就是变量存在 ram 的关系
值类型存在 stack, 它是一层一层的, last in first out 的概念.
heap 是用来存引用类型的. 然后 stack 存引用地址.
闭包算是例外, 它存在 heap
c# 有一种叫装箱和拆箱
装箱是说值类型变成引用类型
var a = 5;
object b = a;
大概是这样一个操作.
拆箱就是引用类型转成值类型
int value = (int)b;
https://www.jianshu.com/p/e9626cb34c9b
object 和 dynamic 都是要装箱的, 而装箱性能会慢, 所以少用, 就会反射一个道理嘛.
静态语言要动态最多也只是做个方法重载, 泛型就好. 其余的都会慢的.