news 2026/9/8 18:02:20

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/9/2 20:40:45

STL——vector

写这篇文章主要是为了记录vector的一些用法&#xff0c;之前一直没有过系统的记录&#xff0c;导致自己老是忘记遍历1、下标遍历#include <bits/stdc.h> using namespace std;int main() {vector<int> a {1, 2, 3, 4, 5};// 下标遍历for (int i 0; i < a.size…

作者头像 李华
网站建设 2026/9/4 12:31:52

“AI写的?我发誓是自己想的!”——Paperzz降重/降AIGC功能,给你的论文穿上“人类思维”伪装衣

Paperzz-AI官网免费论文查重复率AIGC检测/开题报告/文献综述/论文初稿导语&#xff1a; 当导师指着查重报告说&#xff1a;“这段话像AI生成的。” 当你在知网、维普、万方的检测系统里看到“AIGC疑似度99.8%”的红色警报。 当你辛辛苦苦写完的论文&#xff0c;被AI痕迹“判了死…

作者头像 李华
网站建设 2026/9/2 14:11:13

hot100-53搜索旋转排序数组

一、题目nums升序排列&#xff0c;值互不相同&#xff0c;经过k次旋转&#xff0c;找出target的下标&#xff0c;如果没有返回-1。二、思路每次比较 nums[mid] 与 nums[left] 和 nums[right]&#xff0c;判断 mid 在哪一段&#xff0c;再决定如何缩小范围。1. 如果 nums[left] …

作者头像 李华
网站建设 2026/9/2 23:01:24

花艺资源合集

插花系列课程 文件大小: 2.9GB内容特色: 系统示范花材搭配、造型与配色技巧适用人群: 零基础花艺爱好者、手作博主、花店主理人核心价值: 学完即可独立完成商用与居家插花作品下载链接: https://pan.quark.cn/s/65c817498624 插花艺术教程&#xff5c;家居装饰 婚礼花艺&…

作者头像 李华
网站建设 2026/9/2 21:35:50

嵌入式知识篇---直流电路与交流电路

第一部分&#xff1a;直流电路 —— 稳定单项流动的“河流”想象一条平静、宽阔的河流&#xff0c;比如长江。 水永远从西边&#xff08;高处&#xff09;稳定地流向东边&#xff08;低处&#xff09;&#xff0c;方向不变&#xff0c;速度也基本不变。1. 核心特征&#xff1a;…

作者头像 李华