对象内存图

单个对象内存图

(看下面)

多个对象内存图

多个对象可以共用 同一个成员方法

( 每个成员变量的值是有不同的)

main方法加载到栈内存然后创建第一个对象 ,此时main方法中就会出现s1 ;
请添加图片描述

new Student就会在堆内存出现,name和age 默认值分别为null和0;

请添加图片描述

地址值为001, s1通过001就指向了堆内存那块地址,接着执行就修改了name和age 的默认值;

请添加图片描述

接着 调用成员方法;调用方法;study进入到栈内存;
输出“好好学习” 执行结束 study方法从栈内存消失;同理;s1调用doHomework方法;

请添加图片描述

创建第二个对象s2,Student在堆内存出现; 请添加图片描述
接着调用study方法,此时通过s2调用(调用者为s2);调用完从控制台消失; 同理调用doHomework方法;

main方法执行结束后 从栈内存消失

多个对象指向相同的内存图

new出来的是个地址值

s1的值和s2的值都是001,指向的是同一个地址值;

请添加图片描述

于是根据代码执行,s2修改了原先s1写入的内容

指向的是同一个地址值,也就是他们 输出的内容是相同的请添加图片描述

当两个对象指向相同即地址值相同时,其中一个对象修改了堆内存的内容,另一个对象去访问时它的内容也是修改过的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值