java对象初始化过程

对象初始化过程

1
2
3
4
5
6
7
8
9
class Person() {
private String name;
private int age;

Person(String name, int age) {
this.name =name;
this.age = age;
}
}

上面是一个简单的java类。创建一个对象:

1
Person p = new Person("zhangsan", 20);

这句创建对象的过程做了哪些事?

  • 因为new使用到了Person.class,所以会先找到Person.class文件并加载
  • 执行该类中的static代码块(如果有),给Person.class类进行初始化
  • 在堆内存中开辟空间,分配内存地址
  • 在堆内存中建立对象特有属性(例子中的name和age),并进行默认初始化
  • 对属性进行显示初始化
  • 对对象进行构造代码块初始化
  • 对对象进行对应的构造函数初始化
  • 将内存地址赋给栈内存中的p变量