说一下堆栈的区别? 1、物理地址 堆的物理地址分配对对象是不连续的。在GC的时候需要考虑到不连续的分配,性能较慢。 栈使用的是数据结构中的栈,先进后出的原则,物理地址分配是连续的。性能快。 2、存放的内容 堆存放的是对象的实例和数组。 栈存放:局部变量,操作数栈,返回结果。 3、程序的可见度 堆对于整个应用程序都是共享、可见的。 栈只对于线程是可见的,线程私有。