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方法也结束
}
}