類Person:
public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } }
Person p = new Person("zhangsan",20);
這句話做了什么事情?
1.因為new用到了Person.class,所以會先找到Person.class文件並加載到內存中。
2.執行該類中的靜態代碼塊,如果有的話,給Person.class類進行初始化。
3.在堆內存中開辟空間,分配內存地址
4.在堆內存中建立對象的特有屬性,並進行默認初始化。
默認初始化:
默認初始化是系統在堆內存創建一個新的對象時,進行的默認初始化,如null 和0
5.對屬性進行顯示初始化。
顯示初始化:
顯示初始化是在類定義時,直接在各個成員變量的定義時,優先進行賦值,這叫顯示初始化。
6.對對象進行構造代碼塊初始化。
7.對對象進行對應的構造函數初始化。
8.將內存地址賦給棧內存中的p變量