JVM-----JVM分区

1、java堆(线程共享):java虚拟机所管理的内存中最大的一块,存放对象实例。

2、方法区(线程共享):存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。方法区中最重要的是运行时常量池,常量池中存放编译期生成的各种字面量和符号引用。

3、java虚拟机栈(线程私有):为java方法服务,栈元素是栈帧,当有一个方法被调用时,这个方法的栈帧入栈,当这个方法返回时,栈帧出栈。栈帧中包括局部变量表,操作数栈,方法的返回地址,指向当前方法所属类的运行时常量池的引用,附加信息。

4、本地方法栈(线程私有):功能与java虚拟机栈类似,但是java虚拟机栈是为java方法服务,本地方法栈是为Native服务。

5、程序计数器(线程私有):每个线程都有一个程序计数器,用作当前线程所执行字节码的行号指示器。取下一条需要执行的字节码指令、线程恢复等都需要依赖这个计数器来完成。

猜你喜欢

转载自blog.csdn.net/g1607058603/article/details/80554842
JVM