当前位置: 首页 > news >正文

4.Java创建对象有几种方式?

1.使用 new 关键字(最常用)

通过调用类的构造函数直接实例化对象

Person person = new Person(); // 调用无参构造
Person person = new Person("Alice", 25); // 调用有参构造

2.反射机制(动态创建)

利用Java反射 API 在运行时动态创建对象,常用于框架开发

// 通过 Class 对象创建
Class<?> clazz = Class.forName("com.example.Person");
Person person = (Person) clazz.newInstance();// 通过构造器创建(支持有参构造)
Constructor<Person> constructor = Person.class.getConstructor(String.class, int.class);
Person person = constructor.newInstance("Bob", 30);

3.clone()方法(对象复制)

通过实现 Cloneable接口并重写 clone() 方法,基于现有对象复制一个新对象

class Person implements Cloneable {@Overridepublic Person clone() {try {return (Person) super.clone(); // 调用 Object.clone()} catch (CloneNotSupportedException e) {throw new AssertionError(); }}
}
// 使用克隆
Person original = new Person("Alice", 25);
Person cloned = original.clone(); // 创建新对象

4.反序列化(持久化恢复)

通过 ObjectInputStream 将序列化后的字节流恢复为对象,绕开构造函数,常用于网络传输或持久化存储

// 序列化对象到文件
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("person.bin"));
out.writeObject(new Person("Alice", 25));
out.close();// 反序列化创建对象
ObjectInputStream in = new ObjectInputStream(new FileInputStream("person.bin"));
Person person = (Person) in.readObject(); // 创建新对象
in.close();

这是我整理的自学笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!

http://www.dtcms.com/a/291109.html

相关文章:

  • Spring Cloud——Spring Cloud LoadBalancer
  • 7月21日总结
  • C/C++---emplace和emplace_back
  • 企业IT管理——IT系统灾难恢复计划及实施步骤参考模板
  • rk3588 Android 12 添加framework层服务,HAL库,从硬件驱动层到上层APP,实现led灯控
  • OpenAI开发的一款实验性大型语言模型(LLM),在2025年国际数学奥林匹克竞赛(IMO)中达到了金牌水平
  • 数智管理学(三十七)
  • liunx宝塔面板部署easyswoole项目
  • 常规笔记本和加固笔记本的区别
  • React 中使用immer修改state摆脱“不可变”
  • 打造自己的 Jar 文件分析工具:类名匹配 + 二进制搜索 + 日志输出全搞定
  • 从一开始的网络攻防(六):php反序列化
  • UART串口
  • 什么是内网穿透?本地内网无公网IP如何实现互联网上远程访问?
  • 每日一题7.21
  • 自动化商品监控:利用淘宝API开发实时价格库存采集接口
  • springdoc-openapi-ui的使用教程
  • 嵌入式开发学习———Linux环境下C语言学习(十二)
  • 【Tools】Ubuntu24.04安装详细教程
  • mobaxteam x11传输界面避坑
  • SAP 邮箱配置
  • C语言运算符优先级“潜规则”
  • 原型与原型链
  • 二维码扫描登录流程详解
  • 【Elasticsearch】settings
  • 解密分账系统:企业资金管理的智能中枢
  • Linux的相关指令
  • 京东商品评论如何获取?API接口实战指南
  • Kali MSF渗透Windows 11电脑
  • Linux_gdb调试器--进程概念