在整个程序执行过程中,JVM会用一段空间来存储程序执行期间需要用到的数据和相关信息,这段空间一般被称作为Runtime Data Area(运行时数据区),也就是我们常说的JVM内存。
java程序执行过程运行时数据区通常包括这几个部分:程序计数器(Program Counter Register)、Java栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method Area)、堆(Heap
①程序计数器:用来指示执行哪条指令的。
②java栈:Java栈中存放的是 "栈帧",每个栈帧对应一个被调用的方法,在栈帧中包括局部变量表、操作数栈、运行时常量池、方法返回地址、附加信息。
③本地方法栈:执行本地方法服务的。
④方法区-("永久代"):线程共享的区域,存储了每个类的信息、静态变量、常量以及编译器编译后的代码等。
⑤堆:线程共享的区域,Java中的堆是用来存储对象、数组的。这部分空间也是Java垃圾收集器管理的主要区域。
jvm内存划分
网友评论