本文介绍: 全局区(静态区) (static): 全局变量和静态变量的存储是放在一起的,初始化的全局变量和静态变量存放在一块区域,未初始化的全局变量和静态变量在相邻的另一块区域,程序结束后由系统释放。程序启动的时候会单独加载全局变量,同理与全局静态变量,少使用。:不管对象方法还是类方法都可以访问和修改全局静态变量,并且外部类无法调用静态变量,定义后只会指向固定的指针地址,供所有对象使用,节省空间。:定义后只会存在一份值,每次调用都是使用的同一个对象内存地址的值,并没有重新创建,节省空间,只能在该局部代码块中使用。
内存的五大分区
五大分区分别是
栈区(系统管理的地方)、堆区(程序员控制的地方)、静态区(全局区)、常量区、代码区。这里的内存指的就是RAM(random access memory)。
1.栈区
栈是由编译器自动分配释放来管理内存。用户存放程序临时创建的变量、存放函数的参数值、局部变量等。由于栈的先进后出特点,所以特别适合用来做保存/恢复现场的操作。从这个吧意义上,我们可以把栈看做一个临时寄存、交换的内存区。
栈区(stack): 是一段连续的内存区域,从高地址向低地址存储,遵循先进后出(FILO)原则。 一般在运行时进行分配,内存空间由系统管理,变量过了作用域范围后内存便会自动释放。参数、函数、局部变量都放在栈区。参数入栈是从前往后入栈;而结构体入栈是从后往前入栈
优点:
在之前学习小蓝书第一章中提到过实例和对象的内存,我们以下面的例子来具体看一下吧:
2.堆区
优点:
3.常量区
4.静态区
5.代码区
static、extern、const关键字比较
1.static关键字
static关键字作用:
全局静态变量
局部静态变量
2.extern全局变量
对内的全局变量
外部全局变量
3.const常量
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。