07-从零玩转JavaWeb-对象内存分析

时间:2023-03-08 18:53:08

上篇看了关于数组的内存分析,接下来看一下对象的内存分析

假定有如下类:

07-从零玩转JavaWeb-对象内存分析

07-从零玩转JavaWeb-对象内存分析

 第一步会把Person的字节码放到方法区

  执行main方法,把main方法的栈帧放到栈当中

  Person zly = new Person();创建对象,执行流程为

  在堆当中开辟空间,创建对象,对象当中的成员变量都为默认值。

 把创建对象的地址赋值给zly变量

07-从零玩转JavaWeb-对象内存分析

当设置完成员变量的具体值是,内存如下:

07-从零玩转JavaWeb-对象内存分析

整体内存图如下:

07-从零玩转JavaWeb-对象内存分析

如果执行了以下语句:

zly = rh (把rh的地址赋值给了zly)

syso(zly.name) 输出的名字为如花

如果设置了myxq = null

syso(myxq)  会报空指针异常

07-从零玩转JavaWeb-对象内存分析

07-从零玩转JavaWeb-对象内存分析