1. 程式人生 > >Java 五種類例項化的方法與初始化順序

Java 五種類例項化的方法與初始化順序

類的例項化:

    1、使用new操作符

    2、通過工廠方法返回物件,如:String str = String.valueOf(23); 

    3、運用反射手段(通過獲得Class類物件,呼叫方法和屬性),呼叫Class物件的newInstance()方法,呼叫java.lang.Class或者java.lang.reflect.Constructor類的newInstance()例項方法。如:Object obj = Class.forName("java.lang.Object").newInstance(); 

    4、呼叫物件的clone()方法,需要實現Cloneable介面


    5、通過I/O流(包括反序列化),如運用反序列化手段,呼叫java.io.ObjectInputStream物件的 readObject()方法。(序列化是為了儲存在記憶體中的各種物件的狀態(也就是例項變數,不是方法),並且可以把儲存的物件狀態再讀出來

類的初始化:

    1、初始化順序:先靜態物件,後非靜態物件。

    2、構造器初始化:先初始化父類的構造器。構造器也是靜態方法

    3、靜態資料的初始化:靜態資料只佔用一份儲存區域(堆區)。static不能用於區域性變數,基本型別成員有對應的初始值(區域性的基本型別沒有初始值,需要顯示初始化,否則在編譯時會報錯),物件引用成員初始值為null。