堆: 用来存放对象和数组由所有线程共享,运行时动态分配,不必事先告诉编译器需要空间的大小,所以存取较慢类的对象通过new建立,从堆中分配空间,通过垃圾回收机制销毁 栈: 用来存放基本数据类型的变量和对象的引用每个线程都拥有自己的栈,不可以互相访问