java实例化对象的四种方式

article/2025/10/26 0:55:06

java实例化对象的4种方式

  1. 用new 语句创建对象,这是最常用的创建对象方法。
package test;public class Father {public void print() {System.out.println("我是father");}
public static void main(String[] args) {Father f = new Father();f.print();}
}
  1. 运用反射手段,调用Java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。
package test;public class Father {public void print() {System.out.println("我是father");}
public static void main(String[] args) {try {Class<?> cla = Class.forName("test.Father");try {Father f = (Father)cla.newInstance();f.print();} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}} catch (ClassNotFoundException e) {e.printStackTrace();}}
}


3. 调用对象的clone()方法
clone()表示克隆,使用这个实例化一个对象的前提是前面已经有一个实例化过的对象

User user1 = new User(1,"dan");User user2 = null;user2 = (User) user1.clone();
  1. 运用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法。
    序列化:将对象状态转化为可保持或传输的格式的过程,被序列化的对象必须implments Serializable
    反序列化:将流转化成对象的过程
    当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列,即java对象序列,才能在网络上传送,即序列化过程;接收方则需要把字节序列再恢复为java对象,即反序列化。
package test;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;public class Father  {//序列化public static void serial(String fileName) {Test t = new Test("wo");try {ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(fileName));objectOutputStream.writeObject(t);objectOutputStream.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}//反序列化public static void deserialize(String fileName){   try {ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream(fileName));Test t2 = (Test)inputStream.readObject();inputStream.close();t2.test();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}catch (ClassNotFoundException e) {e.printStackTrace();}}
public static void main(String[] args) {Father.serial("D:\\test.txt");System.out.println("序列化完成");Father.deserialize("D:\\test.txt");System.out.println("反序列化完成");}
}
class Test implements Serializable{public String name;public Test(String name) {this.name = name;}public void test() {System.out.println(name);}
}

在这里插入图片描述
(1)和(2)都会明确的显式的调用构造函数 ;(3)是在内存上对已有对象的影印,所以不会调用构造函数 ;(4)是从文件中还原类的对象,也不会调用构造函数。


http://chatgpt.dhexx.cn/article/FDr4LjdB.shtml

相关文章

java实例化对象的几种方式

这里一共整理了四种方法 ①用类的new &#xff08;&#xff09;创建 ②用clone方法创建&#xff0c; 需要类实现 Cloneable 接口 ③通过反射机制创建 ④将一个对象实例化后&#xff0c;进行序列化&#xff0c;再反序列化 下面是实现代码 1&#xff09;用类的new &#xff…

详解C#实例化对象的三种方式及性能对比

前言 做项目过程中有个需求要实例化两万个对象并添加到List 中&#xff0c;这个过程大概需要1min才能加载完&#xff08;传参较多&#xff09;&#xff0c;于是开启了代码优化之旅&#xff0c;再此记录。 首先想到的是可能实例化比较耗时&#xff0c;于是开始对每种实例化方式…

父类声明子类实例化对象详解

测试代码&#xff1a; public class Employee {public String name;public String getType(){return "Employee";}} public class Manager extends Employee{private int money;public String getType(){return "Manager";} }public static void main(St…

java实例化对象后面添加花括号的理解分析

java实例化对象后面添加花括号的理解分析 昨天在看MyBatis官方文档时看到这么一段代码 return new SQL() {{SELECT("P.ID, P.USERNAME, P.PASSWORD, P.FIRST_NAME, P.LAST_NAME");FROM("PERSON P");if (id ! null) {WHERE("P.ID like #{id}");}…

Unity 创建/实例化对象

在程序运行过程中创建、实例化对象物体需要用到Object类中的 Instantiate 函数&#xff0c;例如&#xff0c;我们场景中有一个物体A&#xff1a; 现在我们想要在场景中创建五个该物体&#xff0c;则用Instantiate函数将该物体作为参数传入&#xff1a; using UnityEngine;pu…

几种对象实例化方式详解

一&#xff09;对象实例化常用方式 方式一&#xff1a;直接new一个对象&#xff0c;最常用的一种。 方式二&#xff1a;反射&#xff0c;通过Class.forName("类的全限定名")。 方式三&#xff1a;构造器&#xff0c;通过Class.forName("类的全限定名")&…

yolov5剪枝 实战

&#xff08;1&#xff09;步骤 剪枝的一般步骤只是在正常训练的后面加上了稀疏化训练和剪枝的步骤。 &#xff08;2&#xff09;稀疏化训练 主要区别 稀疏化训练的代码和正常训练的代码的差别主要体现在 ①反向传播 ②优化器 ③parse_opt代码 接下来从代码执行训练简单分析…

Spark 推测执行(speculative)

一 speculative简介 在spark作业运行中&#xff0c;一个spark作业会构成一个DAG调度图&#xff0c;一个DAG又切分成多个stage&#xff0c;一个stage由多个Task组成&#xff0c;一个stage里面的不同task的执行时间可能不一样&#xff0c;有的task很快就执行完成了&#xff0c;…

INT8 中的稀疏性:加速的训练工作流程和NVIDIA TensorRT 最佳实践

INT8 中的稀疏性&#xff1a;加速的训练工作流程和NVIDIA TensorRT 最佳实践 文章目录 INT8 中的稀疏性&#xff1a;加速的训练工作流程和NVIDIA TensorRT 最佳实践结构稀疏量化在 TensorRT 中部署稀疏量化模型的工作流程案例研究&#xff1a;ResNet-34要求第 1 步&#xff1a;…

非引导方法深度补全系列——1—— 《Sparsity invariant cnns》文章细读

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 创新点 论文概述 方法详解 网络结构&#xff1a; 杂七杂八 总结 参考 创新点 1.提出了一种稀疏卷积层&#xff0c;在卷积过程中使用二进制有效性掩码来指示缺失…

模型剪枝三:Learning Structured Sparsity in Deep Neural Networks

论文&#xff1a;https://arxiv.org/abs/1608.03665 代码&#xff1a;https://github.com/wenwei202/caffe/tree/scnn 1 核心思想 前面两篇文章https://blog.csdn.net/cdknight_happy/article/details/110953977和https://blog.csdn.net/cdknight_happy/article/details/1110…

Exploring Sparsity in Image Super-Resolution for Efficient Inference

目录 原文翻译 Abstract 1. Introduction 2. Related Work 4. Our SMSR Network 4.1. Sparse Mask Generation 4.2. Sparse Mask Convolution 5. Experiments 5.1. Implementation Details 5.2. Model Analysis 5.3. Comparison with State-of-the-art Methods Conclusion …

稀疏大模型简述:从MoE、Sparse Attention到GLaM

文 | 唐工源 | 知乎 Sparsity, ..., is another important algorithmic advance that can greatly improve efficiency. 稀疏性&#xff0c;是&#xff08;神经架构搜索&#xff09;之外另一个重要的算法进步&#xff0c;可以大大提高效率。 The use of sparsity in models is…

Sparse Learning

Sparse Learning 本文的内容主要来自余凯老师在CVPR2012上给的Tutorial。前面在总结ScSPM和LLC的时候&#xff0c;引用了很多Tutorial上的图片。其实这个Tutorial感觉写的挺好的&#xff0c;所以这次把它大致用自己的语言描述一下。不过稀疏编码是前两年比较火的东西&#xff0…

理解sparse coding

稀疏编码系列&#xff1a; &#xff08;一&#xff09;----Spatial Pyramid 小结&#xff08;二&#xff09;----图像的稀疏表示——ScSPM和LLC的总结&#xff08;三&#xff09;----理解sparse coding&#xff08;四&#xff09;----稀疏模型与结构性稀疏模型 -------------…

干货!SparCL,将Sparsity用在连续学习任务,相同表现下训练效率提升23倍!

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 作者简介 王梓枫 美国东北大学博士生&#xff0c;主要研究方向持续学习&#xff08;Continual Learning&#xff09;。 个人主页&#xff1a;https://kingspencer.github.io/ 报告题目 SparCL: 边缘设备上的稀疏…

MORE CONVNETS IN THE 2020S: SCALING UP KER- NELS BEYOND 51 × 51 USING SPARSITY

论文链接: https://arxiv.org/pdf/2207.03620.pdf code: https://github.com/VITA-Group/SLaKlink MORE CONVNETS IN THE 2020S: SCALING UP KER- NELS BEYOND 51 51 USING SPARSITY 一、引言&#xff08;二&#xff09;、大内核注意力&#xff08;二&#xff09;、卷积中的大…

Self-supervised Learning for Label Sparsity in Computational Drug Repositioning

论文地址&#xff1a;Self-supervised Learning for Label Sparsity in Computational Drug Repositioning 1. Introduction 药物重定位旨在根据已知的药物-疾病关联性揭示上市药物的新用途。其背后的逻辑是&#xff1a;目前市场上的小分子药物具有多靶点特性&#xff0c;这意…

xgboost:分割Sparsity-aware Split Finding

Sparsity-aware Split Finding1 在许多现实问题中&#xff0c;输入 x x x是稀疏的是很常见的。造成稀疏性的可能原因有很多: 1)数据中存在缺失值&#xff1b; 2)统计中频繁出现零项&#xff1b; 3)特征工程的处理结果&#xff0c;如独热编码。 重要的是使算法意识到数据中…

Sparsity constraint稀疏约束详解

Sparsity constraint稀疏约束详解 引子&#xff1a; 线性模型是我们经常使用的一种模型&#xff0c;比如&#xff1a; 文本分类中&#xff0c;bag-of-words 有p 20 K 个特征&#xff0c; 共有 N 5K 个文本样例&#xff1b; 在图像去模糊化&#xff0c;图像分类中&#xff0c;…