首页 > 系统相关 >对象内存图的过程

对象内存图的过程

时间:2023-11-04 17:12:23浏览次数:45  
标签:对象 方法 成员 stu 地址 内存 main 过程

 

单一对象

1.由于TestStudent中含有main方法,因此TestStudent类先以字节码形式进入方法区,里面包含main方法

2.虚拟机调用该类中的main方法,main方法进入栈内存中

3.main方法中先创建对象stu,调用了student类,Student类字节码文件进入方法区

4.创建了对象stu,在堆内存中开辟对象stu的空间,stu的成员变量name和age的空间包括在内,默认值为null和0,同时还记录了成员方法study()的地址,并将stu对象在堆内存的空间地址反馈给main方法中的stu进行记录

 5.打印stu会输出stu在堆内存的地址,打印stu.name和stu.age会通过stu地址找到堆内存中的name和age成员变量,并打印默认值

 6.对成员变量进行赋值,会通过stu的地址找到堆内存中对应成员变量的储存空间,并对其进行赋值

7.调用study()的成员方法:通过stu地址在堆内存中找到stu对象的储存空间,再从储存空间中找到成员方法的地址,通过该地址调用该成员方法,成员方法被虚拟机调用进入栈内存,使用完毕后study()方法弹栈。(eat()方法同理)

 

多个不同对象(共用成员方法)

 

多个相同对象

 

 

标签:对象,方法,成员,stu,地址,内存,main,过程
From: https://www.cnblogs.com/liunianccc/p/17809551.html

相关文章