堆(heap)、栈(stack)和静态存储区
基本要点:
- 基本数据类型都存放在栈区域(stack)
- 引用数据类型都存放在堆区域(heap)
静态存储区:
- 静态存储区在程序编译的时候就已分配好,这块内存在程序的整个运行期间都存在(主要存放静态数据、全局数据和常量)
栈和堆:
- 变量都存放在内存中
- 内存给变量开辟了两块区域,分别为栈区域和堆区域
- 栈的特点:开口向上(后进先出),速度快,容量小
- 局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放
- 堆的特点:速度稍慢,容量比较大
- 堆区域亦称动态内存分配
- 运行的时候用 malloc 或 new 申请任意大小的内存,程序员负责在适当的时候用 free 或 delete 释放内存
- 动态内存的生存期由我们决定,如果我们不释放内存,程序将在最后才释放掉动态内存
- 良好的编程习惯是:如果某动态内存不再使用,需要将其释放掉,否则,我们认为发生了内存泄漏现象。
基本数据类型的存储:
- 基本数据类型都存储在栈区域中
- 3 种基本数据类型:
- 整型(通常包括short、int、long)
- 实型,即浮点型数据(包括float、double)(称为实型,估计是因为表示的数据范围是实数(因为比起整型,实型还可以表示小数))
- 字符型(char),字符型与ASCII码一 一对应
引用数据类型的存储:
- 引用数据类型存储在堆区域中
- 理解 引用数据类型