创建对象过程的描述:
1.此文件名为Demo1_Car.java
2.javac Demo1_Car.java 进行编译,此时生成两个字节码文件,Demo1_Car.class和Car.class,此时的两个class文件存在硬盘上
3.java Demo1_Car 运行程序,此时会检查Demo1_Car.class是否已经加载到方法区,没有的话要加载
4.要寻找Demo1_Car.class中的main方法,有的话main方法进栈
5.执行main方法中的代码,Car c1 = new Car();
6.这里要首先在栈内存的main方法中创建一个局部变量Car c1,接下来要创建对象,就是执行 new Car(),此时要检查方法区中有没有Car.class,没有的话加载Car.class
7.在堆内存中创建Car类的对象,首先开辟内存空间,分配起始地址,给对象中的属性进行默认初始化值(String 类型的为null,int 类型的为0),然后将该对象的地址值赋值给局部变量c1,也就是说c1指向了该对象
8.接下来执行c1.color = "red";....更改对象属性的值
9.接下来执行c1.run();run方法进栈,执行完毕后,run方法弹栈
10.main方法中的所有的代码执行完毕后,main方法弹栈
|
|