在java中: 栈(stack):有编译器自动分配和释放,存放函数的参数、局部变量、临时变量、函数返回地址等; 堆(heap):一般有程序员分配和释放,如果没有手动释放,在程序结束时可能由操作系统自动释放(针对java而言)。 堆(Heap)里存的是所有Java对象,而栈(Stack)里存的一般是Java的基本类型,如:boolea,char ,byte,short,int,long,float,double。