Java/JVM内存区域划分

JVM区域划分
敲一下:

  • 程序计数器(PC Register):用来保存下一条的指令地址

  • 虚拟机栈(JVM Stack): 主要存储方法中的局部变量;局部变量:方法的参数或方法的内部变量。

  • 本地方法栈(Native Method Stack):与虚拟栈类似,只不过保存的是Native方法的局部变量。在HotSpot的JVM版本中,本地栈和虚拟机栈是在一起的

  • 堆(Heap):使用new创建出来的对象都在堆上

  • 方法区(Method Area):用于存储类(class)信息、常量、静态变量、即时编译器编译后的代码等。方法编译出的字节码保存于此,即一些方法信息;

  • 运行时常量池(Runtime Constant Pool):是方法区的一部分,存放字面量与符号引用。

注意:

  • 栈主要用来保存栈帧(Stack Frame)
  • 在每个线程中,程序计数器(PC)、本地方法栈\JVM栈都是私有的,即每个线程独享一份。而堆、方法区、常量池是所有线程共享的。
发布了54 篇原创文章 · 获赞 6 · 访问量 4826

猜你喜欢

转载自blog.csdn.net/glpghz/article/details/103299678