首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

五种方法创建java对象,你知道几种呢?

五种方法创建java对象

作为开发人员,我们通常每天都会创建许多对象,但是我们总是使用新的或依赖管理系统(例如)来创建这些对象。但是,有更多方法可以创建本文中将要研究的对象。

用Java创建对象的共有5种核心方式,下面将以其示例加以说明,然后介绍创建对象的行的字节码。但是,有很多API可以为我们创建对象,但是这些API还将间接使用这5种核心方式之一,例如。

如果您将执行最后给出的程序,则会看到方法1、2、3使用构造函数创建对象,而4、5没有调用构造函数创建对象。

1、使用新关键字

这是创建对象的最常见和常规的方法,也是一种非常简单的方法。通过使用此方法,我们可以调用要调用的任何构造函数(无参数的构造函数和参数化的)。

2.使用Class类的newInstance()方法

我们还可以使用类的方法创建一个对象。此方法调用构造函数来创建对象。

我们可以通过通过以下方式创建对象:

Or

3.使用构造方法类的newInstance()方法

与方法类似,类中有一个方法可用于创建对象。我们还可以使用此方法来调用参数化构造函数和私有构造函数。

这两种方法都被称为创建对象的反射方式。实际上,类的方法在内部使用了类的方法。这就是为什么最好使用后一种方法,并且也将其用于诸如,Hibernate,Struts等不同框架的原因。要了解这两种newInstance()方法之间的区别,请阅读使用Example在Java中通过Reflection创建对象。

4.使用clone()方法:

每当我们在任何对象上调用时,JVM实际上都会为我们创建一个新对象,并将先前对象的所有内容复制到其中。使用方法创建对象不会调用任何构造函数。

要在对象上使用方法,我们需要实现并在其中定义方法。

Java克隆是Java社区中最值得探讨的话题,它的确有其缺点,但是在对象完全满足Java克隆的强制条件之前,它仍然是创建任何对象的副本的最流行和最简单的方法。

5.使用反序列化

每当我们序列化然后反序列化一个对象时, JVM就会为我们创建一个单独的对象。在反序列化中,JVM不使用任何构造函数来创建对象。要反序列化对象,我们需要在类中实现Serializable接口。

正如我们在上面的字节码中看到的那样,所有四个方法调用都转换为invokevirtual(这些方法直接处理对象的创建),除了第一个转换为两个调用的方法是一个是新的,另一个是调用特殊的(对构造函数的调用)。

例:

让我们考虑一个我们要为其创建对象的类:

在下面的Java程序中,我们将以所有5种方式创建Employee对象。

该程序将给出以下输出:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201022A056OA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券