JAVA创建对象的四种方式:
有4种显式地创建对象的方式:
1.用new语句创建对象,这是最常用的创建对象的方式。
2.3.运用反射手段,调用Java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。
②、通过 Class 类的 newInstance() 方法
这种默认是调用类的无参构造方法创建对象。比如 Person p2 = (Person) Class.forName(“com.ys.test.Person”).newInstance();
③、通过 Constructor 类的 newInstance 方法
这和第二种方法类时,都是通过反射来实现。通过 java.lang.relect.Constructor 类的 newInstance() 方法指定某个构造器来创建对象。
Person p3 = (Person) Person.class.getConstructors()[0].newInstance();
实际上第二种方法利用 Class 的 newInstance() 方法创建对象,其内部调用还是 Constructor 的 newInstance() 方法。
3.调用对象的clone()方法。
clone又有深拷贝,浅拷贝
浅拷贝即复制基本数据类型+String类型,对引用类型只复制引用而不复制引用的对象,所以对任何一个对象的引用类型的修改都会影响到另外一个对象。
实现浅拷贝:implements Cloneable Object类里的clone()方法是浅拷贝
深拷贝即复制基本数据类型+引用类型,对任何对象的修改都不会影响到对方
实现深拷贝:利用构造器,主要还是使用序列化
以下为参考文章
https://www.cnblogs.com/ysocean/p/8482979.html
4.运用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法.
下面演示了用前面3种方式创建对象的过程。
https://zhidao.baidu.com/question/545683596.html