博客
关于我
【面试题】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/

你可能感兴趣的文章
Little Zu Chongzhi's Triangles
查看>>
算法入门
查看>>
cf-A. Wet Shark and Odd and Even(水)
查看>>
Train Problem II(卡特兰数+大数乘除)
查看>>
一些技术博客
查看>>
第01问:MySQL 一次 insert 刷几次盘?
查看>>
分布式 | DBLE 3.20.07.0 来啦!
查看>>
振荡器指标
查看>>
libvirtd:内部错误:Failed to apply firewall rule
查看>>
优先级队列2
查看>>
简单易懂的背包问题
查看>>
属性的使用错误
查看>>
C#选定文件复制到指定文件夹
查看>>
ACM DP Partitioning by Palindromes
查看>>
TiKV 源码解析系列文章(十三)MVCC 数据读取
查看>>
TiDB 源码阅读系列文章(十六)INSERT 语句详解
查看>>
TBSSQL 的那些事 | TiDB Hackathon 2018 优秀项目分享
查看>>
【面试题】Java中创建对象的方式有几种?
查看>>
1900分图论 : 1183E1 LCA + Kruskal
查看>>
(建议收藏)计算机网络:传输层概述、UDP协议与可靠传输协议习题解析与拓展
查看>>