应用程序中内存分配概要
来源:互联网 发布:程序员新工作第一天 编辑:程序博客网 时间:2024/06/06 12:45
内存分配区域
在计算机中,每一个应用程序的数据都是保存在内存中的,不同类型的数据,保存的内存区域不同:1. 栈区2. 堆区3. 全局区、静态区4. 常量区5. 代码区
内存加载顺序
当一个应用程序首次启动时,首先会加载代码
,也就是我们编写的机器码,将他们加载到代码区
中;
==>加载常量
;
==>加载全局区/静态区
中已初始化
的内容;
==>加载全局区/静态区
中的未初始化
的内容。
以上这些内容,随着程序启动,被加载到内存,随着程序被销毁,才会一起被销毁,程序员不需要管理这部分内存。
注意,
由于全局区、静态区中的内容在整个程序的生命周期中,会一直存在在内存中,占用内存,所以我们在开发中要尽量少用全局/静态变量
。
另外还有两块很重要的内存分配区域:
1. 栈区(stack) 由编译器自动分配并释放,一般存放函数的参数值,局部变量等.
- 栈区中的地址是从上往下分配,最先分配的变量在最顶部,也就是内存允许的最大值开始往下进行分配,越分配地址越小。
- 栈区的内存是先进后出的,一旦出了作用域就会被销毁,程序员不需要管理栈区变量的内存。
========================
2. 堆区(heap) 由程序员分配和释放,如果程序员不释放,程序结束时,可能会由操作系统回收
0 0
- 应用程序中内存分配概要
- JAVA虚拟机内存分配概要
- 应用程序执行 内存分配
- 应用程序内存分配
- java中内存分配
- c++中分配内存
- 程序中内存分配
- C++中内存分配
- java中内存分配
- JAVA中内存分配
- Android 应用程序运行时请求内存分配
- JAVA中内存的分配
- C++中内存的分配
- C语言中内存分配
- 关于程序中内存分配
- 程序中各段内存分配
- C++中内存分配方式
- C语言中内存分配
- java note-4
- 泛函编程(23)-泛函数据类型-Monad
- 三种缓存原理
- 重装win7后如何恢复ubuntu引导
- Android之属性动画(一)
- 应用程序中内存分配概要
- 简洁的使用Linux yum功能
- < meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1" />的用途说明
- JDBC- exercise-2 通过htttp 访问 数据库,返回一个JSON格式的相应信息
- [UnityShader]固定管线着色器基础
- MSDE使用说明文档
- 我的RFID整理地址(更新中)
- C++多态的实现
- MFC对话框自动调整(Automatic Dialog Resizing) -- 翻译 Dmitry Kochin