java创建对象的几种方式
java创建对象的几种方式
企服解答
Java创建对象的5种核心方式:1、使用new关键字;2、使用Class类的newInstance()方法;3、使用构造方法类的newInstance()方法;4、使用clone()方法;5、使用反序列化。
1、使用new关键字
new关键字是创建对象的最常见和常规的方法,也是一种非常简单的方法。通过使用此方法,我们可以调用要调用的任何构造函数(无参数的构造函数和参数化的)。
Employee emp1 = new Employee();
2、使用Class类的newInstance()方法
我们还可以使用Class类的newInstance()方法创建一个对象。
Employee emp2 = Employee.class.newInstance();
3、使用构造方法类的newInstance()方法
与Class类的newInstance()方法类似,java.lang.reflect.Constructor类中有一个newInstance()方法可用于创建对象。我们还可以使用此newInstance()方法来调用参数化构造函数和私有构造函数。
Constructor<Employee> constructor = Employee.class.getConstructor();
Employee emp3 = constructor.newInstance();
这两种newInstance()方法都被称为创建对象的反射方式。实际上,Class类的newInstance()方法在内部使用了Constructor类的newInstance()方法。这就是为什么最好使用后一种方法,并且也将其用于诸如Spring,Hibernate,Struts等不同框架的原因。要了解这两种newInstance()方法之间的区别,请阅读使用Example在Java中通过Reflection创建对象。
4、使用clone()方法
每当我们在任何对象上调用clone()时,JVM实际上都会为我们创建一个新对象,并将先前对象的所有内容复制到其中。使用clone方法创建对象不会调用任何构造函数。
要在对象上使用clone()方法,我们需要实现Cloneable并在其中定义clone()方法。
Employee emp4 = (Employee) emp3.clone();
Java克隆是Java社区中最值得探讨的话题,它的确有其缺点,但是在对象完全满足Java克隆的强制条件之前,它仍然是创建任何对象的副本的最流行和最简单的方法。
5、使用反序列化
每当我们序列化然后反序列化一个对象时, JVM就会为我们创建一个单独的对象。在反序列化中,JVM不使用任何构造函数来创建对象。要反序列化对象,我们需要在类中实现Serializable接口。
ObjectInputStream in = new ObjectInputStream(new FileInputStream("data.obj")); Employee emp5 = (Employee) in.readObject();
相关信息
- 周鸿祎:当程序员比当老板更幸福
2021年10月24日是程序员节。360集团创始人、董事长周鸿祎谈到互联网大佬谁编程排第一,并表示尽管可能有人认为当老板比较有钱,但自己还是会怀念作为程序员做出成功产品的幸福感。
- 国产智能安全芯片操作系统麟铠问世
2021年1月25日,紫光同芯与支付产品提供商金邦达联合发布安全芯片操作系统:麟铠。这也是双方继推出国内首款应用于EMV一芯双应用信用卡的中国芯之后合作的再次升级。业内人士也指出,麟铠系统的核心意义在于原来国内银行卡绝多数用的都是ORACLE的JAVA系统,有了这个今后可以逐步摆脱。