对象初始化过程
1 | class Person() { |
上面是一个简单的java类。创建一个对象:
1 | Person p = new Person("zhangsan", 20); |
这句创建对象的过程做了哪些事?
- 因为new使用到了Person.class,所以会先找到Person.class文件并加载
- 执行该类中的static代码块(如果有),给Person.class类进行初始化
- 在堆内存中开辟空间,分配内存地址
- 在堆内存中建立对象特有属性(例子中的name和age),并进行默认初始化
- 对属性进行显示初始化
- 对对象进行构造代码块初始化
- 对对象进行对应的构造函数初始化
- 将内存地址赋给栈内存中的p变量