静态内存:用来保存局部static对象、类static数据成员已经定义在任何函数之外的变量。还分为初始化和未初始化两个区域,存储初始化和未初始化的全局变量和静态变量。
栈内存:用来保存定义在函数内的非static对象。
堆(自由空间):由程序员管理,需要⼿动对空间进⾏分配和回收,空间较⼤,但可能会出现内存泄漏和空闲碎⽚的情况。
常量存储区:存储常量,⼀般不允许修改。
代码区:存放程序的⼆进制代码。
分配在静态内存和栈内存中的对象由编译器自动创建和销毁:对于栈对象,仅在其定义的程序块中运行时才存在:static对象在 使用前分配,在程序结束时销毁:堆中对象的生存周期由程序来控制