stack(栈区):存放局部变量、函数参数、返回数据和返回地址,系统自动分配释放。栈顶从高地址向低地址的方向生长,操作方式类似于数据结构中的栈。
heap(堆区):由程序员通过malloc()等函数分配释放,若程序员不释放,程序结束时可能由OS回收。它与数据结构中的堆是两回事,分配方式倒是类似于链表。堆的生长方向从低地址向高地址的方向生长。
static area(静态区):存放全局变量和静态变量,程序结束后由系统释放。(关于literal constant area(文字常量区):不同编译器有不同的实现)
code area(代码区):存放函数二进制代码。
注:文字常量(literal constant)和常变量(constant variable)区别:文字常量编译之后存储在代码区,不可寻址,常变量存储在数据区,可寻址。(1)文字常量又称为“字面常量”,包括数值常量、字符常量和符号常量。(2)常变量指定义时必须显示初始化且值不可修改的变量。与其他变量一样被分配空间,是可以寻址的。
内存四区
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- JVM内存模型Java虚拟机(Java Virtual Machine=JVM)的内存空间分为五个部分,分别是: ...
- 2016年国庆假期终于把此书过完,整理笔记和体会于此。 关于书名 书名源于俄罗斯的演员斯坦尼斯拉夫斯基创作的《演员...
- 前言 不知道大家有没有这样一种感觉,程序员的数量井喷了。可能是因为互联网火了,也可能是各家培训机构为我们拉来了大量...