news 2026/4/12 21:04:17

Java创建对象的方式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java创建对象的方式

一、使用new关键字

通过new 类名()调用类的构造方法来创建类的对象,是开发中最常用的方式,直接调用,可控性强。

示例代码:创建Person类

通过new关键字创建Person类的实例对象

运行结果:

二、使用反射机制,通过class类的getDeclaredConstrustor().newInstance()方法

利用 Java 反射机制,通过类的 Class 对象调用newInstance()方法创建对象(JDK9 后标记为过时,推荐用getDeclaredConstructor().newInstance())。

特点:

Ⅰ.动态创建对象,适合框架开发(如spring)

Ⅱ.需要处理异常,且必须保证类有可访问的构造方法。

示例代码:

运行结果:

三、使用反射机制,通过Constructor类的newInstance()方法

相较于Class.newInstance()方法,该方法支持调用私有构造方法,更加灵活

特点:

Ⅰ.可以指定调用任意构造方法(包括有参、私有)

Ⅱ.反射相关的方式都存在一定的性能开销,非必要不滥用

示例代码:

运行结果:

四、使用克隆机制

1、浅度克隆
克隆基本数据类型,但不会克隆引用数据类型,二者是共享一个引用数据类型的变量

示例代码:

创建Manager类

创建Employee类

在main函数中进行测试:

运行结果:

2、深度克隆
既会克隆基本数据类型,也会克隆引用数据类型。

示例代码:

创建Manager类

创建Employee类

在main函数中测试:

运行结果:

五、通过反序列化

将序列化的对象字节流恢复为对象,要求类实现Serializable接口

示例代码:

修改Person类,继承 Serializable接口

通过反序列化创建对象

运行结果:

六、使用工厂模式

在工厂模式中,创建对象

示例代码:场景有两个汽车工厂可以生产汽车:A工厂和B工厂

1、创建生产汽车的接口

2、创建类FactoryA

3、创建类FactoryB

4、创建工厂类ProduceFactory

5、测试工厂模式

运行结果:

总结:

以上就是本次介绍的6中创建对象的方式,下面总结一下这几种方式的使用到的关键字和适用场景

对象的创建方式

使用的关键字

是否调用构造函数

适用场景

new 关键字

new ClassName()

常规业务场景、明确知道类名的场景

克隆

Object.clone ()、继承Cloneable 接口

快速复制对象(如原型模式)

反射

getDeclaredConstructor().newInstance() (JDK9+);Constructor类的newInstance()

框架开发(如 Spring)、动态代理

反序列化

实现Serializable接口

网络传输、持久化(如文件 / 数据库)

工厂模式

在工厂内部自定义

复杂对象创建、多产品族场景


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 14:36:14

乐享云 v1.1.0| 不限速磁力下载,边下边播,内置字幕匹配

这是一款最近新出的免费磁力软件,目前仅提供安卓版。注册登录之后即可无限制使用。只需将磁力链接复制到软件中,等待软件解析完磁力链接后就可以打开磁力文件。如果磁力文件中包含视频资源,软件支持直接在线预览观看视频。同时,软…

作者头像 李华
网站建设 2026/4/10 2:25:34

Python返回数组/List长度的方法

你想了解在 Python 中获取列表(List,也常被俗称 “数组”)长度的方法,这是 Python 基础中高频使用的操作,核心是通过内置函数实现,同时需要掌握不同场景下的使用细节(比如嵌套列表、numpy 数组等…

作者头像 李华
网站建设 2026/4/8 1:10:29

运维转行做什么好?零基础入门到精通,收藏这篇就够了

运维工程师转行网络安全是职业发展路径中比较常见的一种转行,这种转行通常基于以下几个原因和优势: **1.技能相关性:**运维工程师通常负责维护和管理企业的IT基础设施,包括服务器、网络和存储系统。这些工作内容与网络安全领域有…

作者头像 李华
网站建设 2026/4/8 1:43:29

XML 编码:深入解析与实际应用

XML 编码:深入解析与实际应用 引言 XML(可扩展标记语言)是一种用于存储和传输数据的标记语言。它被广泛应用于互联网、企业内部系统以及移动应用中。本文将深入解析XML编码的原理、规范以及在实际应用中的优势。 一、XML编码概述 1.1 XML的起源与发展 XML最早由W3C(万…

作者头像 李华
网站建设 2026/4/11 2:47:49

【Python基础】Python字符串操作全攻略:新手入门必备指南

目录 Python字符串操作全攻略:新手入门必备指南1. 引言:什么是字符串?2. 前置知识3. 字符串的创建与访问3.1 创建字符串3.2 访问字符串元素:索引和切片3.3 字符串的不可变性 4. 常用字符串操作方法4.1 获取字符串长度:…

作者头像 李华
网站建设 2026/4/12 13:21:24

全网十大降AI工具大比拼:知网、维普、万方实测数据公开

家人们,现在学校查得是真严,不仅重复率,还得降ai率,学校规定必须得20%以下... 折腾了半个月,终于把市面上各类方法试了个遍,坑踩了不少,智商税也交了。今天这就把这份十大降AI工具合集掏心窝子…

作者头像 李华