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