当前位置: 首页 > 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.lryc.cn/news/595539.html

相关文章:

  • repmgr+pgbouncer实现对业务透明的高可用切换
  • ANSYS 2025 R1软件下载及安装教程|附安装文件
  • 【实战】Dify从0到100进阶--文档解读(10)参数提取HTTP节点
  • 2025年一区SCI-回旋镖气动椭圆优化算法Boomerang Aerodynamic Ellipse-附Matlab免费代码
  • IFN影视官网入口 - 4K影视在线看网站|网页|打不开|下载
  • 【智能协同云图库】智能协同云图库第二期:基于腾讯云 COS 对象存储—开发图片各功能模块
  • next.js刷新页面时二级菜单展开状态判断
  • 234、回文链表
  • lesson20:Python函数的标注
  • CMake与catkin_make的find_package()命令使用说明
  • 基于Vue与CloudBase AI Toolkit的色觉识别Web应用开发报告:VibeCoding新范式实践
  • 14.7 Alpaca格式深度解析:3倍指令准确率提升的LLM微调秘诀
  • 工业仪表识别(一)环境安装
  • 数据结构-哈希表(一)哈希函数、哈希表介绍、优缺点
  • 人工智能之数学基础:事件间的关系
  • Js进阶案例合集
  • doker centos7安装1
  • 大模型中的Actor-Critic机制
  • 直播专用域名租用全解析:开启直播新境界
  • 计算机史前时代:从原始计数到机械曙光
  • 什么是GNN?——聚合、更新与循环
  • 计算机发展史:集成电路时代的微缩革命
  • 2025 最好的Coze入门到精通教程(上)
  • 时序顶会基础创新知识点-小波变换篇上
  • 设计系统搭建:大型 Pad 应用的协同开发解决方案
  • 优测发布IoT云联解决方案,赋能生态应用创新跨端体验!
  • 一文详解REST风格
  • WSL如何安装docker?
  • 人生的意义
  • 培生生成式人工智能(GAI)认证职场应用白皮书