首页 > 编程语言 >Java克隆

Java克隆

时间:2023-08-05 10:33:12浏览次数:35  
标签:Java 克隆 对象 数据类型 A1 引用 拷贝

为什么我们要使用克隆?

答:想对一个对象进行操作处理,又想保留原有的数据进行接下来的操作。允许在不影响原始对象的情况下创建相同的对象。通俗理解:就是我用我的复制人去干任何事我都不怕。

注意:克隆不适用于所有情况。对于某些对象来说,使用克隆可能会导致意外的行为。此外,在某些情况下,克隆可能比手动创建对象更消耗内存。因此,必须仔细考虑是否使用克隆,并评估其优缺点以及潜在的风险。

克隆分为:浅拷贝与深拷贝

浅拷贝:对A对象拷贝(有基本数据类型属性和引用数据类型属性),拷贝出来A1。对A1的基本数据类型修改并不会对A有影响,但是对A1的引用数据类型修改对A有影响。即浅拷贝的基本数据类型不会有影响,但是引用数据类型有影响

深拷贝:对A对象拷贝(有基本数据类型属性和引用数据类型属性),拷贝出来A1,A1跟A不共享内容,是一个全新的对象,修改A1不会修改A。即深拷贝的基本数据类型不会有影响,引用数据类型也不会有影响

浅拷贝:

Java克隆_Java克隆

深拷贝:要实现深拷贝,必须确保被复制的对象及其所有子对象都实现了Cloneable接口并重写了clone()方法。另外,如果被复制的对象包含类似于文件句柄、网络连接等资源,那么需要在clone()方法中进行特殊处理以避免资源泄漏等问题。Java克隆_Java克隆_02

Java克隆_深拷贝_03








标签:Java,克隆,对象,数据类型,A1,引用,拷贝
From: https://blog.51cto.com/u_16206682/6973734

相关文章

  • C#.NET 国密SM3 HASH 哈希 与JAVA互通 ver:20230803
    C#.NET国密SM3HASH哈希与JAVA互通ver:20230803 .NET环境:.NET6控制台程序(.netcore)。JAVA环境:JAVA8,带maven的JAVA控制台程序。 简要解析:1:明文输入参数都需要string转byte[],要约定好编码,如:UTF8。2:输出参数:byte[],在传输时需要转为string,要约定好编码,如:16进......
  • Java 利用poi读取excel行数,列数
    一般读取行总数时,会调用getLastRowNum(),读取列总数时,会调用getLastCellNum(),但是这两个方法的返回值有点区别。sheet.getLastRowNum();//返回最后一行的索引,即比行总数小1 row.getLastCellNum();//返回的是最后一列的列数,即等于总列数getLastRowNum():如果she......
  • java中switch case写法
    在Java中,你可以使用switch语句来实现多分支条件判断。下面是switch语句的一般写法:switch(expression){casevalue1://当expression的值等于value1时执行的代码break;casevalue2://当expression的值等于value2时执行的代码......
  • Web前端大作业、基于HTML+CSS+JavaScript响应式个人相册博客网站
    ......
  • Java Runtime.exec()的使用
    JavaRuntime.exec()的使用 Sun的doc里其实说明还有其他的用法:exec(String[]cmdarray,String[]envp,Filedir)Executesthespecifiedcommandandargumentsinaseparateprocesswiththespecifiedenvironmentandworkingdirectory.那个dir就是调用的程序......
  • 《深入理解Java虚拟机》读书笔记:HotSpot虚拟机对象探秘
    基于实用优先的原则,以常用的虚拟机HotSpot和常用的内存区域Java堆为例,深入探讨HotSpot虚拟机在Java堆中对象分配、布局和访问的全过程。以下是本节内容的脑图。 HotSpot虚拟机对象探秘脑图 一、对象的创建创建对象大致分为5步:1.检查类是否加载,没有加载先加载类2.分配内......
  • Java面试题--真实、高频、有答案,全网最强
    简介说明本文分享Java面试题,这套题真实、高频、全面、有详细答案、保你稳过面试,让你成为offer收割机。本套题是我原创,历时两年,纯手打,是我在几十场面试中被面试官问到的问题,比其他复制粘贴的面试题强一百倍,本套题堪称全网最强(我不太喜欢“全网最强”这样的字眼,但本套题确实做到......
  • JAVA执行Linux命令报错Cannot run program error=2 , No such file or directory
    JAVA执行Linux命令报错Cannotrunprogramerror=2,Nosuchfileordirectory酒香不怕巷深IP属地:河北2019.04.2214:00:00字数411阅读6,648JAVA使用ProcessBuilder运行Linux命令报错:startfailed:Cannotrunprogram"xxx"(indirectory"xx"):error=2,......
  • [maven]java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultMod
    Maven异常环境idea版本:2020.1.3maven版本:3.8.5问题描述在idea中加入maven配置时,idea一直报出java.lang.NoSuchMethodError:org.apache.maven.model.validation.DefaultModelValidator异常异常信息1)Errorinjectingconstructor,java.lang.NoSuchMethodError:org.......
  • JVM零基础到高级实战之Java内存区域虚拟机栈
    前言JVM零基础到高级实战之Java内存区域虚拟机栈JVM内存模型之虚拟机栈虚拟机栈是什么?用于作用于方法执行的一块Java内存区域为什么要有虚拟机栈?每个方法在执行的同时都会创建一个栈帧(StackFramel)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至......