128

问答题 128 /413

请你回答一下Java的内存结构是什么,全局变量,临时变量,静态变量分别存在哪里,堆分为哪几块,比如说新生代老生代,那么新生代又分为什么

参考答案

参考回答:

代码区:是编译器生成的一个exe区段,存放函数体的二进制代码

栈区:存放函数的参数,局部变量的值等,其操作方式类似于数据结构中的栈,const局部变量也是放在栈里

堆区:就是malloc和new之类的内存所在区段,一般由程序员分配释放,分配方式类似于链表

静态数据区:是编译器生成的一个exe区段,初始和未初始化的全局变量和局部变量都放在这里,

常量区:是编译器生成的一个exe区段,const全局变量也放在常量区。

全局变量,临时变量,静态变量分别存在哪里

局部变量保存在栈中,全局变量和静态变量存储在静态数据区。

堆分为哪几块,比如说新生代老生代,那么新生代又分为什么?

java垃圾收集管理器的主要区域,因此很多时候被称为“GC堆”。

分为新生代和老年代;

新生代分为:Eden和Survivor。