美文网首页Java面试
面向对象系列文章(五) - 两个对象的内存图(两个对象指向同一个

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

作者: 世道无情 | 来源:发表于2018-11-01 08:21 被阅读5次

    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同时指向同一个堆内存;

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/rhrtxqtx.html