Day 21 创建对象内存分析

代码示例

image

内存分析(完整)

image

内存分析(分步)

1.一开始进入项目,什么都没有的时候是这样的,分为栈和堆。再堆中又区分出一个方法区,方法区里面又区分出一个静态方法区域。静态方法的修饰词为static,静态方法再最开始的时候就已经生成了。
image
2.然后创建了Pet类和Application类,然后再类里面写了方法和关键字等。Application中的main方法压在栈的最底层
image
3.new Pet。引入变量名:dog。放在栈中main的上面。此时创建的new Pet 会出现在堆中。模板就是Pet类。数值都是初始化的值
image
4.Application类中对dog进行赋值,存在常量池中。赋值之后dog里的new Pet数值发生改变。
image
5.在创建一个cat的引入变量名,重新new一个Pet。(做对比),Application类中没有赋值,因此他只是Pet类模板,以及他的初始值。(0x0001,0x0002是内存地址)
image
最后他们都能去调用,静态方法
image

posted @ 2022-04-03 17:11  咩咩子的起床气  阅读(32)  评论(0)    收藏  举报