面向对象-对象的创建和使用:内存解析

面向对象-对象的创建和使用:内存解析 - 图1

虚拟机栈

线程会被分配一块独有的栈内存区域存放局部变量。

  • 栈帧
    线程中每个方法都会被分配一块独有栈帧存放局部变量。
    1.局部变量表
    存放局部变量的内存空间
    2.操作数栈
    操作数进行运算的中转内存空间
    3.动态链接
    符号引用转换为直接引用
    4.方法出口
    记录方法执行完毕后,主方法后续执行的位置。

    程序计数器

线程会被分配一块独有的程序计数器内存区域。存放线程运行的行号以应对多线程切换。字节码执行引擎会动态的修改程序计数器。

方法区

存放类装载子系统加载的类信息,常量,静态变量。

本地方法栈

与虚拟机栈类似,只是为native方法服务。

所有的对象实例和数组都要在