1、堆heap和栈stack是逻辑上划分出来的,目的是优化存取速度。栈存取速度快,空间小;堆存储速度慢,空间大。
2、java中基本数据类型的变量是在栈内存中分配空间,编译器;引用数据类型(数组,类,接口)的变量在栈内存中存放引用,在堆内存中分配实际的存储空间。