一、内存结构和内存模型是什么
内存结构:主要描述了虚拟机在执行java程序时所使用的内存空间组织方式。
内存模型:定义程序中各个变量的访问规则。即在虚拟机中将变量存储到内存和从内存中取出变量的底层细节。
二、java内存结构
①整体架构图
②运行时内存分配
java程序在运行时,需要在内存中的分配空间。为了提高运算效率,就对数据进行了不同空间的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
具体划分为如下5个内存空间:
- 程序计数器(Program Counter Register)
- 栈内存(Stack)
- 堆内存(Heap)
- 方法区(Method Area)
- 本地方法栈(Native Method Stack)
程序计数器(Program Counter Register)
程序计数器是一块很小的内存空间,它是线程私有的,可以认作为当前线程的行号指示器。一个线程的执行,是通过字节码解释器改变当前线程的计数器的值,来获取下一条需要执行的字节码指令,从而确保线程的正确执行。