java两个对象使用同一个方的法内存
1.创建one对象时会创建一个堆,one指向堆地址
2.修改one.brand成员变量时,先从one找到堆地址,接着再从堆中找到brand变量,然后修改brand的值为"苹果"
3.修改one.price成员变量时,先从one找到堆地址,接着再从堆中找到price变量,然后修改price的值为8388.0
4.修改one.color成员变量时,先从one找到堆地址,接着再从堆中找到color变量,然后修改color的值为黑色
5.调用one.call()方法,先从one找到堆地址,接着从堆中找到成员方法所在方法区中的地址,然后在从方法区中找到one.call()方法,接着将one.call()方法压入栈.
1).初始化who参数的值为"乔布斯"
2).输出"给xxx打电话"
3).将one.call()方法退栈
4).返回到调用one.call()方法中的下一条语句
6.调用one.sendMessage()方法,先从one找到堆地址,接着从堆中找到成员方法所在方法区中的地址,然后在从方法区中找到one.sendMessage()方法,接着将one.sendMessage()方法压入栈.
1).输出"群发短信"
2).将one.sendMessage()方法退栈
3).返回到调用one.sendMessage()方法中的下一条语句
7.创建two对象时会创建一个堆,two指向堆地址
8.修改two.brand成员变量时,先从two找到堆地址,接着再从堆中找到brand变量,然后修改brand的值为"三星"
9.修改two.price成员变量时,先从two找到堆地址,接着再从堆中找到price变量,然后修改price的值为5999.0
10.修改two.color成员变量时,先从two找到堆地址,接着再从堆中找到color变量,然后修改color的值为蓝色
11.调用two.call()方法,先从two找到堆地址,接着从堆中找到成员方法所在方法区中的地址,然后在从方法区中找到two.call()方法,接着将two.call()方法压入栈.
1).初始化who参数的值为"欧巴"
2).输出"给欧巴打电话"
3).将two.call()方法退栈
4).返回到调用two.call()方法中的下一条语句
12.调用two.sendMessage()方法,先从two找到堆地址,接着从堆中找到成员方法所在方法区中的地址,然后在从方法区中找到two.sendMessage()方法,接着将two.sendMessage()方法压入栈.
1).输出"群发短信"
2).将two.sendMessage()方法退栈
3).返回到调用two.sendMessage()方法中的下一条语句
13.main方法结束,将main方法退栈;
one对象方法和two对象方法是指向同一个方法内存的
