当前位置:首页 > 内存 > 正文

全局变量在什么时候分配内存

  • 内存
  • 2024-06-04 02:24:59
  • 1476

一、C程序中全局变量存储空间在()分配【答案】:B
本题测试你对编程语言内存分配的了解。C/C++编译的程序占用的内存划分如下:
1.栈区(stack):由编译器自动分配和释放,用于存储函数参数值、局部变量值等。它的行为类似于数据结构的堆栈。
2.堆区:通常由程序员分配和释放,但如果程序员不释放它,则在程序结束时可能会被操作系统回收。注意链表数据空间必须采用堆存储分配策略。
3.全局区(静态区)(static):这是放置全局变量和静态变量存储空间的区域。已初始化的全局变量和静态变量位于一个区域,未初始化的全局变量和未初始化的静态变量在程序结束后被系统释放。
4.文字常量区:常量字符串放置在此处,并在程序终止后由系统释放。
5.程序代码区:存放函数体二进制代码。
二、java中的全局变量和静态变量是在编译时分配内存还是在加载时分配内存??全局变量(成员变量)在创建对象时分配内存。创建对象的流程为1.分配空间2.递归创建父类的对象(如果没有父类则可以省略此步骤)3.初始化变量成员4.调用构造函数创建对象
静态变量在类加载时分配空间。静态变量与对象无关。当JVM加载时,它们在信息加载过程中被分配空间。第一次读课。加载类的流程为1加载父类(如果父类已经加载,则不会加载)2.初始化静态属性3.按顺序初始化静态代码块
初始化的原理是分配空间
并且以后创建对象时会用到静态变量。时间没有初始化,所以一般用static来记录共享信息
。我希望这对你有用