栈:
由操作系统自动分配释放 ,存放函数的参数值和局部变量的值等。简单的理解就是当定义一个变量的时候,计算机会在内存中开辟一块存储空间来存放这个变量的值,这块空间就叫做栈,然而栈中一般存放的是基本类型数据,栈的特点是先进后出(或后进先出)
内存小,读取速度快
堆:
堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。其实在堆中一般存放变量是一些对象类型
内存大,读取慢
在深拷贝中,将变量名放入栈中, 而将变量的值放在 堆中