1. 程式人生 > >Student s = new Student();在記憶體中做了哪些事情?

Student s = new Student();在記憶體中做了哪些事情?

  1. 載入Student.class檔案進記憶體,如果該類有父類,要先載入其父類
  2. 在虛擬機器棧中為引用變數s開闢空間(棧中不會預設初始化)
  3. 在堆記憶體中為學生物件開闢空間,進行預設初始化(0,null)
  4. [如果Student有父類]父類屬性的初始化(程式碼塊和定義屬性時的賦值,哪個寫在前先執行哪個);
  5. [如果Student有父類]父類的建構函式的初始化;
  6. Student屬性的初始化(程式碼塊和定義屬性時的賦值,哪個寫在前先執行哪個);
  7. Student的建構函式的初始化。
  8. 物件初始化完畢,返回物件的地址值,並賦值給棧中的s引用變數。