如以下代码:
public class Person {
String name;
int age;
public void show() {
System.out.println("姓名:" + name + ",年龄:" + age);
}
}
class TestPerson {
public static void main(String[] args) {
// 创建p1对象
Person p1 = new Person();
p1.age = 24;
p1.name = “张三”;
p1.show();
// 创建p2对象
Person p2 = new Person();
p2.age = 35;
p2.name = “李四”;
p2.show();
}
}
结果是:
到了 main 方法的时候虚拟机栈创建一个main方法的栈帧,并存下所有的变量 参数 返回值 如下图:
形参并没有被赋值 保存为null。
接下来遇到了 我们定义的p1 这是的p1并没有被赋值 :
当执行到 " nwe Person();"时虚拟机栈会另开一个栈帧,并从放法里获取 Person
如图:
大致上是这样的, 再下一步到了 对 “age” ,“name”进行赋值,
到p2的时候也差不多是这么个过程