JVM虚拟机内存分配

1.程序计数器:

在JVM规范中,每个线程都有自己的程序计数器,并且任何时间一个线程都只有一个方法在执行,也就是所谓的当前执行方法。程序计数器会记录存储当前线程执行Java方法的JVM指令地址。如果是在执行本地方法,则是未指定值。

2.Java虚拟机栈:

每个线程创建的时候都会创建一个Java虚拟机栈,其内部保存一个个的栈帧,对应着一次次的java方法调用。栈帧中存储着局部变量表、操作数栈、动态链接、方法正常退出、异常退出等。

3.堆:

Java内存管理的核心区域,用来存放Java对象实例,几乎所有的创建的Java对象实例都是被存放到堆上。堆被所有线程共享。堆细分的话就又分为新生代和老年代。

4.方法区:

这个也是所有线程共享的区域,用于存放元数据(meta data),例如类结构信息、以及对应的运行时常量池、字段、方法代码等。

5.本地方法栈

和Java虚拟机栈非常的相像,每个线程都会创建一个。

 

posted @ 2020-10-20 10:38  gyz196  阅读(133)  评论(0)    收藏  举报