一、堆和栈的空间都是在内存上的,堆是内存的动态概念,栈是内存的静态概念;二、堆的内存是随着程序的运行而变化的,栈的内存是在程序编译时就确定好的;三、由于堆是动态,栈是静态,所以堆的效率要比栈慢;四、栈与栈之间的内存数据是无法被互相访问的,但是在一个进程中,所有的栈都可以访问堆上的数据;五、数据大小不确定的时候使用堆,当数据大小确定的时候使用栈,栈的效率更高;六、大小非常庞大的情况下使用堆不使用栈; 本栏目推荐文章第十二节:红黑树性质、相对平衡的原理、与AVL树的区别TCP之三次握手四次挥手与UDP区别固态硬盘与机械硬盘有什么区别?Spring Boot和 Spring Cloud的区别;单体架构与微服务架构的区别以及优缺点vue模板的首次渲染,和重新渲染,有哪些区别?云打印和网络打印的区别?云打印是网上打印吗?无源晶振与有源晶振 的区别不起眼但是很要命的Java小细节 -- 短路与和与、短路或和或的区别webgl和canvas的区别MutationObserver、IntersectionObserver和ResizeObserver的区别