TestPerson类执行时的内存变化图

public class Person {
String name;
int age;
public void show(){
System.out.println(“姓名:”+name+",年龄:"+age);
}
}
public class TestPerson {
public static void main(String[ ] args) {
首先运行main方法,创建一个main方法的栈帧,变量是args
Person p1 = new Person();
然后把P1变量放入main方法中,创建一个P1的变量,把属性放在堆中的对象里面,把方法放在方法区。然后把对象里的地址赋给P1。
在这里插入图片描述
p1.age = 24;
然后P1给对象里的age赋值
在这里插入图片描述
p1.name = “张三”;
在这里插入图片描述
通过地址把方法区的张三赋给p1对象里的name
p1.show();
在这里插入图片描述
创建p1.show方法的栈帧,把p1对象的地址赋给p1栈帧里面。之后p1对象结束
Person p2 = new Person();
在这里插入图片描述
然后把P2变量放入main方法中,创建一个P1的变量,把属性放在堆中的对象里面,把方法放在方法区。然后把对象里的地址赋给P2。
p2.age = 35;
在这里插入图片描述
然后P2给对象里的age赋值
p2.name = “李四”;

在这里插入图片描述
通过地址把方法区的李四赋给p2对象里的name
p2.show();
在这里插入图片描述
创建p2.show方法的栈帧,把p2对象的地址赋给p2栈帧里面。之后p2栈帧结束
最后的语句执行完,main方法也结束
在这里插入图片描述
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值