首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 建立物件的五種方式總覽

     編輯:Java 綜合教學

Java 建立物件的五種方式總覽

Java 中建立物件實例主要有五種方式,各有適用場景與效能特性。

1. new 關鍵字

MyClass obj = new MyClass();
  • 最常用、最直接
  • 呼叫建構子,執行初始化邏輯

2. Class.newInstance()(反射)

MyClass obj = (MyClass) Class.forName("com.pkg.MyClass").newInstance();
  • 需無參建構子且為 public
  • 已淘汰(Java 9 標記 deprecated),建議改用 Constructor.newInstance()

3. clone() 方法

MyClass obj1 = new MyClass();
MyClass obj2 = (MyClass) obj1.clone();
  • 類別需實作 Cloneable 介面
  • 淺拷貝:參考型別欄位共用同一物件
  • 不呼叫建構子

4. Constructor.newInstance()(反射進階)

Constructor ctor = MyClass.class.getConstructor();
MyClass obj = ctor.newInstance();
  • 可指定帶參建構子
  • 繞過存取修飾子(配合 setAccessible(true))
  • 框架常用(Spring、Hibernate 等)

5. 反序列化

ObjectInputStream ois = new ObjectInputStream(new FileInputStream("obj.ser"));
MyClass obj = (MyClass) ois.readObject();
  • 類別需實作 Serializable
  • 從位元組流還原物件狀態
  • 不呼叫建構子,serialVersionUID 需一致

比較總結

方式呼叫建構子需無參建構子適用場景
new是否一般開發
Class.newInstance()是是舊版反射(不推薦)
clone()否否物件拷貝、原型模式
Constructor.newInstance()是否框架、動態載入
反序列化否否持久化、網路傳輸
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved