二.2Java 面向对象基础(黑马程序员)

2.对象内存图

2.1对象内存图(单个对象)

调用成员变量

调用main方法,创建一个对象名字为s的Student类,系统分配一个内存

s通过001指向了堆内存

输出s,输出s的地址

输出s.name,通过s的地址001找到堆内存的name,并将其内容输出

输出s.age,通过s的地址001找到堆内存的age,并将其内容输出

通过s的地址001找到name,将其内容更改为“张曼玉”

通过s的地址001找到age,将其内容更改为30

调用成员方法

调用study方法,study方法加载到栈内存,调用对象为main方法中创建的s对象,地址值为001

输出好好学习,执行完毕后从栈内存消失

调用doHomework方法,doHomework方法加载到栈内存,调用对象为main方法中创建的s对象,地址值为001

执行完毕后doHomework方法后从栈内存消失,接着在往下执行,main方法执行完毕后从栈内存消失

2.2对象内存图(多个对象)

2.3对象内存图(多个对象指向相同)

mian方法进来,创建Student对象,地址值为001,将地址赋给s1

将s1的name改为林青霞,s1的age修改为30,接着输出s1的name值和s1的age值

s2调入main方法中,s2的值等于s1的值,s2=001,s1和s2都指向堆内存001

通过s2的值001将name值修改为张曼玉

s1的值和s2的值都是001,所以指向的是001

当多个对象指向同一个对象时,一个对象修改了堆内存,另一个对象同样修改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值