博客
关于我
【面试题】Java中创建对象的方式有几种?
阅读量:616 次
发布时间:2019-03-13

本文共 1247 字,大约阅读时间需要 4 分钟。

创建对象的方式

在Java编程中,创建对象有多种方法,以下是几种常用的方式:

1. 使用 new 关键字

这是最常见也是最简单的创建对象的方式了。通过这种方式,我们可以调用任意的构造函数,无论是无参数的还是带参数的。

示例:

Student s = new Student();

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

我们也可以通过 Class 类的 newInstance 方法创建对象。这个方法会调用无参数构造函数创建对象。

示例:

Employee emp2 = (Employee) Class.forName("org.programming.mitra.exercises.Employee").newInstance();// 或者Employee emp2 = Employee.class.newInstance();

3. 使用 Constructor 类的 newInstance 方法

Constructor 类的 newInstance 方法与 Class 类的方法有些类似,但它可以调用有参数的构造函数,包括私有的构造函数。

示例:

Constructor
constructor = SomeClass.class.getConstructor();SomeClass obj = constructor.newInstance(FloatValue, intValue);

4. 使用 clone 方法

clone 方法可以通过调用对象的 clone 方法来创建一个新对象。这个方法不会调用任何构造函数,而是直接复制现有对象的内容。

示例:

Employee emp4 = (Employee) emp3.clone();

需要注意的是,类必须实现 Cloneable 接口,并提供一个 clone 方法。

5. 使用反序列化

反序列化允许你通过读取序列化文件来创建对象。反序列化过程中,jvm会自动创建对象,并且不使用构造函数。

示例:

ObjectInputStream in = new ObjectInputStream(new FileInputStream("data.obj"));Employee emp5 = (Employee) in.readObject();

新 instanceMethod 的区别

  • Class 类 位于 java.lang 包中。
  • 构造器类 是反射机制的一部分。
  • Class.newInstance 传播 NoArgConstructorException
  • 构造器类.newInstance 包装 InvocationTargetException
  • Class.newInstance 会调用 反射Api,调用无参数构造函数。
  • 构造器类.newInstance 可以调用有参数的构造函数和私有构造函数。

理解这些方法如何根据需要选择,以适应不同场景是非常有用的。

转载地址:http://tbuoz.baihongyu.com/

你可能感兴趣的文章
整合mybatis方式一:mybatis-spring
查看>>
多线程并发问题
查看>>
java8 函数式编程
查看>>
Spark ML算法简单了解 Kmeans
查看>>
s5p6818内核修改和重新编译
查看>>
s5p6818 fastboot 刷机内核
查看>>
20201024 fpga 状态机
查看>>
s3c2440 ads程序移植到keil中(一) 初步完成
查看>>
工程经济—建设工程定额
查看>>
工程经济—建设工程项目设计概算
查看>>
工程经济—工程量清单编制
查看>>
1Z301070、建设工程担保制度
查看>>
1Z301100、建设工程法律责任制度
查看>>
1Z202040、成本核算
查看>>
1Z203010、进度控制与进度计划系统
查看>>
1Z204040、建设工程项目施工质量验收
查看>>
1Z204050、施工质量不合格的处理
查看>>
1Z308020、民事诉讼制度
查看>>
JSP中的九大内置对象
查看>>
Linux于Windows使用Samba共享文件时文件属性nobody nogroup的解决办法
查看>>