当前位置:首页 > 虚拟机 > 正文

java虚拟机中栈放在哪里


一、求夹大神,java中将内存分为堆区,栈区,方法区。静态成员和方法位于方法区,局部变量在栈,对象在堆Java内存结构:
它将内存分为4部分
1.速度快,所以局部变量和一些小数据存储在栈区,对象存储在栈区。
静态区域:维护恒定的行为和成员变量。
栈区中存储的变量是存储的变量值。
关系数据类型:
栈区存储的是对象在栈区的地址,因此栈区中变量的地址也称为引用。


二、请高手详细的解答一下JAVA的堆,栈,方法区,谢谢。方法区(非堆):这是每个线程共享的内存区域。它用于存储类信息、常量、静态变量以及虚拟机中即时编译器编译的代码等数据。
Java堆:这是虚拟机管理的最大的内存区域。它是所有线程共享的内存区域,在虚拟机启动时创建。该内存区域的唯一目的是存储对象实例,几乎所有对象实例都在这里分配内存。Java堆是垃圾收集器管理的主要区域。
Java虚拟机栈:线程私有,其生命周期与线程相同。每个方法执行时都会同时创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法输出等信息。从调用每个方法到完成执行的过程相当于虚拟机中将一个栈帧从栈中压入栈并从栈中弹出的过程。