構造器與類同名
java中不管對象也好,還是基本數據類型也好,你聲明它的時候,它們都稱爲變量,在你使用變量前給變量進行賦值,這就是變量的初始值,因此叫變量初始化。
實例化是指對象的創建,一般是指通過 new 關鍵字(當然還有其他途徑,比如反射),在堆中爲對象分配內存,這就是實例化。
舉個非常簡單的例子,你知道飛機會飛,但飛機在你腦海裏只是個概念,當真的把飛機制造出來,變成實實在在的,存在於物質世界(java中稱內存)的東西時,你才能用它來飛。如果在物質世界(內存)中根本就不存在,那就無法使用。
因此,實例化可以說將概念(類),變成實際存在(內存中存在)的過程就稱爲實例化。
PersonDemo p=new PersonDemo("lisi",20);這句話都做了什麼事情?
- 因爲new用到了PersonDemo.class,所以會先找到PersonDemo.class文件並加載到內存中。
- 執行該類中的靜態成員和static代碼塊,如果有的話,給persondemo.class類進行初始化。
- 在堆內存中開闢空間,分配內存地址。
- 在堆內存中建立對象的特有屬性,並進行默認初始化。
- 對屬性進行顯示初始化。
- 對對象進行構造代碼塊初始化。
- 對對象進行對應的構造函數初始化。
- 將內存地址付給棧內存中的p變量。