内存图:
代码:
public static void main(String[] args) {
Car car = new Car();
car.color = "红色";
car.count = 5;
car.run();
}
内存中的执行顺序:
1、main函数进栈,然后从main函数的第一行代码开始执行。
2、在栈内创建Car类的引用car,等待接收堆中传过来的地址值。
3、看到new Car()会在堆内存开辟一块儿空间。
4、该类的成员变量进堆,系统给出默认值。
5、至此,对象创建完毕,把堆中对象的地址值赋值给栈中的引用car。
6、执行car.color = "红色"; 把对象的color属性值改为"红色"。
7、执行car.count = 5; 把对象的count属性值改为5。
8、执行car.run(); run()方法进栈,开始执行run()方法。
9、run()执行完毕后弹栈。
10、main()函数弹栈,程序结束。
//先这么记忆,不严谨。 类加载器,构造方法 |
|