一、靜態代碼塊
靜態代碼塊。給類初始化的.
格式:
static
{
靜態代碼塊中的執行語句。
}
特點:隨着類的加載而執行,只執行一次,並優先於主函數。
用於給類進行初始化的。
二、對象的初始化
Person p = new Person("zhangsan",20);
該句話都做了什麼事情?
1,因爲new用到了Person.class.所以會先找到Person.class文件並加載到內存中。
2,執行該類中的static代碼塊,如果有的話,給Person.class類進行初始化。
3,在堆內存中開闢空間,分配內存地址。
4,在堆內存中建立對象的特有屬性。並進行默認初始化。
5,對屬性進行顯示初始化。
6,對對象進行構造代碼塊初始化。
7,對對象進行對應的構造函數初始化。
8,將內存地址付給棧內存中的p變量。
方法區中存儲的是方法及方法體.