内存分为四个区,分别是:代码区、全局区、栈区、堆区。
一个程序在运行前分为代码区和全局区,这个时候栈区和堆区还没有创建。
代码区
存放代码的区域,这个区域的特点是共享和只读,不能更改。代码会被编译为二进制,存放在这个区域中。
全局区
存放全局变量、静态变量、常量。在程序整个运行期间这些数据会一直在这块内存中。
栈区
由系统管理。主要存放函数的参数以及局部变量。在函数完成执行,系统自行释放栈区内存。
特点:空间小、读取速度快。
堆区
由使用者管理。手动释放,若不手动释放,则会造成内存泄漏,但是程序结束后由系统回收。
特点:空间大、灵活、读取速度慢。