进出顺序

堆:顺序随意

栈:先进后出

内存分配

堆:程序员手动分配,程序不释放,可能在程序结束后由系统回收,如:new,malloc;

栈:编译器自动分配、释放,速度快,存放函数的参数值,局部变量值等;

全局区(静态区):全局变量、静态变量总是放一块的,初始化时放在同一块区域,未初始化时放在相邻的另一块区域,程序结束由系统释放;

常量区:放常量,程序结束由系统释放;

程序代码区:存放函数体的二进制代码,处理器会到这个区域取值并执行;