Java虚拟机内存分配

Java内存分配:

内存分为:方法区,堆区,栈(虚拟机栈,本地方法栈),程序计数器。

   方法区和堆区对于线程是共享的,而虚拟机栈和本地方法栈,程序计数器是线程隔离的。

程序计数器:

    记录当前线程所执行的字节码的行号,每个线程需要独立的程序计数器。

Java虚拟机栈:

    每个方法在被执行时都会创建一个栈帧用于存储局部变量表,操作数栈,动态链接,方法出口等信息。虚拟机内存栈是我们通常讲的“栈”

本地方法栈:

   与虚拟机栈类似,区别在于  虚拟机栈为虚拟机执行Java方法服务,本地方法栈为虚拟机使用Native方法服务。

堆区:

    公共内存,在虚拟机启动时创建。存放对象实例。Java物理上可以是不连续的,但是逻辑上连续。

方法区(静态区):

     与堆区相同,在各个线程间共享。存储类信息,常量,静态变量,常量池。


猜你喜欢

转载自blog.csdn.net/MoMo_F/article/details/80775435