面向对象系列文章(五) - 两个对象的内存图(两个对象指向同一个堆内存)

1. 概述


两个对象的内存图如下所示,就是两个对象指向同一个堆内存;


两个对象的内存图(两个对象指向同一个堆内存).png

由上图可知:

1>:首先在方法区中的class文件区的左边开辟:StudentDemo3.class和StudentDemo.class 文件区,并且StudentDemo3中有main()方法、StudentDemo中有变量名:name、age,方法名:study();
2>:main()方法进栈,然后在栈中Student s1;
3>:然后在堆中 new Student(),变量名:name默认值为null,age默认值为0,然后在堆内存中 0x12c,并且让这个地址指向方法区中的study()方法,当study()方法执行完后,在堆内存中消失;
4>:然后给堆中定义 0x2de地址值;
5>:然后把 0x2de地址值赋值给 堆内存的 Student s1,这个时候堆内存中的 name:林青霞,age:28;
6>:由于Student s2 = s1;所以0x2de的地址值也赋值给 Student s2,然后 让s2也指向 堆内存的 0x2de即可;

以上就是两个对象 s1、s2同时指向同一个堆内存;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容