java中用new定義對象有3種寫法。
1.使用new關鍵字
通過這種方式,我們可以調用任意的構造函數(無參的和帶參數的)。
<span style="color: #ff0000;">Employee emp1 = new?Employee();</span> ?0: new#19?// class org/programming/mitra/exercises/Employee: dup: invokespecial #21?// Method org/programming/mitra/exercises/Employee."":()V
2.使用Class類的newInstance方法
我們也可以使用Class類的newInstance方法創建對象。這個newInstance方法調用無參的構造函數創建對象。
我們可以通過下面方式調用newInstance方法創建對象:
<span style="color: #ff0000;">Employee emp2 = (Employee) Class.forName("org.programming.mitra.exercises.Employee").newInstance();</span>
3.使用反序列化
當我們序列化和反序列化壹個對象,jvm會給我們創建壹個單獨的對象。在反序列化時,jvm創建對象並不會調用任何構造函數。為了反序列化壹個對象,我們需要讓我們的類實現Serializable接口 。
<span style="color: #ff0000;">ObjectInputStream in = new?ObjectInputStream(new?FileInputStream("data.obj"));Employee emp5 = (Employee) in.readObject();</span>