java里的映射和复制有什么区别

java里的映射和复制的区别就是深拷贝和浅拷贝的区别。区别是复制是拷贝了对象的引用,当原对象发生变化的时候,拷贝对象也跟着变化;映射是另外申请了一块内存,内容和原对象一样,更改原对象,拷贝对象不会发生变化。

java里的映射和复制有什么区别-Worktile社区

浅拷贝:有两种方式,一种是把一个对象里面的所有的属性值和方法都复制给另一个对象,另一种是直接把一个对象赋给另一个对象,使得两个都指向同一个对象。

深拷贝:把一个对象的属性和方法一个个找出来,在另一个对象中开辟对应的空间,一个个存储到另一个对象中。

两者就在于,浅拷贝只是简单的复制,对对象里面的对象属性和数组属性只是复制了地址,并没有创建新的相同对象或者数组。而深拷贝是完完全全的复制一份,空间大小占用一样但是位置不同!浅拷贝是拷贝了对象的引用,当原对象发生变化的时候,拷贝对象也跟着变化;深拷贝是另外申请了一块内存,内容和原对象一样,更改原对象,拷贝对象不会发生变化。

深拷贝和浅拷贝是指在赋值一个对象时,拷贝的深度不同。

在进行深拷贝时,会拷贝所有的属性,并且如果这些属性是对象,也会对这些对象进行深拷贝,直到最底层的基本数据类型为止。这意味着,对于深拷贝后的对象,即使原对象的属性值发生了变化,深拷贝后的对象的属性值也不会受到影响。

相反,浅拷贝只会拷贝对象的名列前茅层属性,如果这些属性是对象,则不会对这些对象进行拷贝,而是直接复制对象的引用。这意味着,对于浅拷贝后的对象,如果原对象的属性值发生了变化,浅拷贝后的对象的属性值也会跟着发生变化。

延伸阅读:

什么是浅拷贝?

拷贝就是拷贝指向对象的指针,意思就是说:拷贝出来的目标对象的指针和源对象的指针指向的内存空间是同一块空间,浅拷贝只是一种简单的拷贝,让几个对象公用一个内存,然而当内存销毁的时候,指向这个内存空间的所有指针需要重新定义,不然会造成野指针错误。

浅拷贝是按位拷贝对象,它会创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值;如果属性是内存地址(引用类型),拷贝的就是内存地址 ,因此如果其中一个对象改变了这个地址,就会影响到另一个对象。即默认拷贝构造函数只是对对象进行浅拷贝复制(逐个成员依次拷贝),即只复制对象空间而不复制资源。

一般情况下,只需使用系统提供的浅拷贝构造函数即可,但是,如果对象的数据成员包括指向堆空间的指针,就不能使用这种拷贝方式,因为两个对象都拥有同一个资源,对象析构时,该资源将经历两次资源返还,此时必须自定义深拷贝构造函数,为创建的对象分配堆空间,否则会出现动态分配的指针变量悬空的情况。

文章标题:java里的映射和复制有什么区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37826

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月12日 下午4:36
下一篇 2023年2月12日 下午4:37

相关推荐

  • 开会怎么做会议记录

    开会做会议记录的技巧:1、做好事前准备;2、忠于会议原意;3、把握会议要点;4、确定记录形式;5、加工处理文字;6、用好规范语言。做好事前准备是指,主笔者要尽可能地在事前多了解掌握相关情况,以便记录整理时心中有数、查找方便。 1、做好事前准备 通常情况下,举办或召开一次会议,都涉及会议的组织筹备事宜…

    2023年3月24日
    58300
  • 敏捷估算的定义、方法及知识技巧是什么

    估算是对交付计划产品所需的成本、进度、投入或者技能进行的预测。对项目的可行性、商业案例的投资回报进行评估非常有必要。3种常用的估算方法是:1、专家意见;2、类比;3、分解。每一种方法都可以独立使用,但是要想得到优异的结果,应综合这3种方法。 一、什么是敏捷估算 为什么要估算?估算的目的是确定项目大小…

    2022年11月17日
    76601
  • 如何管理研发任务

    在处理研发任务时1、明确任务需求与目标、2、合理施行分工、3、实施有效沟通机制、4、采用敏捷方法、5、建立反馈与评审流程是关键要素。在这五项中,实施有效沟通机制对于保障研发过程中信息准确传递、团队成员之间协作流畅、以及快速解决出现的问题至关重要。因此对于沟通机制来说,确立定期会议、使用高效沟通工具、…

    2024年1月9日
    22900
  • 什么是SMT(satisfiabilitymodulotheories)

    SMT的全称是Satisfiability Modulo Theories,可被翻译为”可满足性模理论”,“多理论下的可满足性问题”或者”特定(背景)理论下的可满足性问题”,其判定算法被称为SMT求解器.简单地说,一个SMT公式是结合了理论背景的逻辑公式,其中的命题变量可以代表理论公式. SMT的全…

    2023年2月22日
    1.4K00
  • 健身中心管理系统设计

    开展对一个健身中心管理系统的设计,关键在于提供用户信息处理、课程调度、设备管理和财务报表等功能的高效、卓效的平台。1、用户数据库的设计与管理、2、动态课程表编排与更新机制、3、设备监管及保养排程、4、财务与会员费用跟踪系统。特别地,对动态课程表编排与更新机制进行深入探讨,它需要能够实时反映教练的可用…

    2024年1月9日
    20300
  • 什么是UDP协议

    UDP 协议即用户数据报协议,该协议主要为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。nternet 的传输层有两个主要协议无连接的是 UDP,它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做什么特别的事情。 UDP 协议即用户数据报协议,…

    2023年5月29日
    33100
  • 企业如何建立创新文化

    创新文化的构建基于多元的策略,其中包括1、强化内部沟通、2、鼓励风险承担、3、提倡快速失败和学习、4、持续教育和训练、5、确立支持性的领导层。强化内部沟通不仅提升组织透明度,还能激发员工间思想的碰撞,是创新文化中不可或缺的一部分。 内部沟通的有效性直接关联到员工的参与度与创新动力。它提倡知识分享、鼓…

    2023年12月19日
    40900
  • 公司办公流程管理系统有哪些

    常见的公司办公流程管理系统有:1、泛普办公流程管理系统;2、致远办公流程管理系统;3、华天动力办公流程管理系统;4、泛微办公流程管理系统;5、蓝凌办公流程管理系统;6、通达办公流程管理系统;7、友空间办公流程管理系统。 常见的公司办公流程管理系统 1、泛普办公流程管理系统 泛普OA系统是目前泛普具代…

    2022年11月16日
    1.6K01
  • 听云联合创始人Wood陈靖华:最大危机是盲目乐观扩张,技术是我的精神田园

    从1998年至今,Wood度过了21年的创业人生,体验过美好而短暂的青春热血,创建过延续13年的长寿科企。 文| babayage 编辑 | 笑 笑 第1次创业:乌托邦热血青年的自由之梦 科创人(以下简称科):您最初接触电脑和互联网是什么时候? Wood:小学3年级名列前茅次知道电脑,心里一直记挂着…

    2022年3月20日
    50400
  • MVC中的M和C区别到底是什么

    区别是:M即model模型是指模型表示业务规则。M 是数据层,用于数据获取。C即controller控制器是指控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处理。C 是控制层,用于逻辑控制。 M即model模型是指模型表示业务规则。M 是数据层,用于数据获取。…

    2023年2月15日
    68700

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部