1.heap和stack区别

1.stack用于存放程序运行时的临时变量,传参、调用函数时的PC值。
2.heap提供空间给应用程序申请和使用。
3.stack中的对象和变量只要定义好就可以使用了,应用程序结束时会自动释放。
4.heap中申请的变量或对象只能定义变量指针,并要求在运行过程中通过new来动态分配内存空间,而且必须显示地free你申请的内存。不过一些语言会帮你释放这部分内存,比如java的垃圾回收机。
5.stack中的变量的大小和个数会影响exe的文件大小,但速度快;heap中的变量大小与exe大小没有关系,但分配和释放需要耗费的时间远大于stack中分配内存所用的时间。