初始化,記憶體模型,成員變數,靜態變數,區域性變數,方法
初始化順序,靜態變數(按照類中定義的順序,先父後子)-成員變數(按照類中定義的順序)-建構函式-其他方法。建立物件時構造器的呼叫順序是:先初始化靜態成員(先父後子),初始化父類成員變數,然後呼叫父類構造器,再初始化自己成員變數,最後呼叫自身構造器。
成員變數在建立物件是分配記憶體,變數在堆中,指向的物件也在堆中,生命週期物件被清理。
靜態變數在建立物件或者是第一次呼叫時分配記憶體,然後初始化,物件在堆中,變數在方法區中,生命週期系統結束。
成員變數在執行方法是被初始化,物件在堆中,變數在棧中,生命週期方法執行完畢,但是堆中的物件需要等待gc。
方法是在共享區,方法對類建立的所有的物件共享
初始化順序
上次面試碰到一面試題,雖然知道但是感覺還是有必要記錄下來,利己利民,題目是關於初始化順序的,也許對很多初學者還是有點用處的。閒話不多說,先上 package initialseq public class parent public parent public int method package ...
初始化順序
在類的內部,變數定義的順序決定了初始化的順序.即使變數定義散布於方法定義之間,它們仍會在任何方法呼叫之前得到初始化.無論建立多少個物件,靜態資料只占用乙份儲存區域.靜態變數初始化只有在必要時才會執行,比如有類table,如果不建立table物件也不引用table的靜態方法,那麼類table的靜態變數...
關於初始化及初始化順序
首先,類的成員變數會被自動初始化,並且會在構造器被呼叫前發生,如下 public class testinitialization public static void main string args 如下 主類 public class staticinitialization 呼叫main之前...