參考鏈接: 用Java創建對象的不同方法
java中的4種創建對象的方式:?
?
在這片博文中和大家簡單分享一下常見的幾種創建java對象的方式??
1.使用 new 的方式,這也是我們最常見的一種方式 我們以 Person 類來舉例說明 例:?
Person p = new Person();
?
2.使用反射來創建對象 我們可以調用 class類 或者 Constructor類的newInstance() 方法 例:?
Person p1 = Person.class.newInstance();
或者:
Person p2 = (Person)Class.forName("package.Person").newInstance();
這里的package.Person是指Person類的路徑
?
使用Constructor類的newInstance() 方法:
Constructor<Person> con = Person.class.getConstructor();
Person p3 = con.newInstance();
?
3.使用克隆的方式 調用對象的 clone() 方法 例:?
Person p4 = (包名.Person) p.clone();
?
4.使用反序列化的方式 我們需要讓我們的類實現Serializable接口 例:?
ObjectInputStream in = new ObjectInputStream(new FileInputStream("data.obj"));
Person p5 = (Person ) in.readObject()
?
以上幾種創建對象的方式 第一種方法轉變為兩個調用,new和invokespecial(構造函數調用), 其他都是轉變為invokevirtual(創建對象的直接方法) 。