对深拷贝与浅拷贝的理解-测试

Android Termux 安装Kali Linux 或 kali Nethunter史诗级详细教程 Termux 安装kali 阅读详情

一、通过例子引入

(1)赋值

直接用赋值的方式

返回true  说明两份有相同的内存地址

内容相同

则:它是发生了浅拷贝!!!

 

(2)使用clone()方法

1.首先对象实现Cloneable。注意。

2.对象的成员中重写clone方法

3.测试

两个地址不相等  

前者对象未因后者对象的改变而改变-------互不影响-------不是引用!

说明发生了深拷贝!!!

小结:

如果一个被复制的属性都是基本类型,那么只需要实现当前类的cloneable机制就可以了,此为浅拷贝。

如果被复制对象的属性包含其他实体类对象引用,那么这些实体类对象都需要实现cloneable接口并覆盖clone()方法。

(3)拷贝对象里有其他对象的引用

特殊的是!下面的例子!

 

在User对象里增加一个引用对象 Score!

此种情况,则是因为:score未发生拷贝!         

深拷贝      =等价于=     每一层对象都进行浅拷贝  

 

修改后:

 

Python实战:用NumPy实现LU分解与QR分解(附代码对比) 本文深入探讨了使用NumPy实现LU分解与QR分解的实战方法,通过代码对比分析了两种矩阵分解技术的原理、数值稳定性差异及核心应用场景。LU分解适用于高效求解线性方程组,而QR分解凭借其正交化特性,在求解最小二乘问题和处理病态矩阵时更具优势。文章提供了详细的Python代码示例,帮助开发者根据具体问题选择最合适的分解方法。 阅读详情

相关推荐

天线学习笔记——HFSS简单阵列天线

在HFSS15.0版本中使用 Radiation --> Antenna Array Setup 设置天线阵列的参数时的设计列表如下: 值得注意的是,在该版本中所定义的是:第一个阵元的位置坐标(First Cell Position)、阵元之间的间距(Directions)和阵元的数量(Number of Cells) 这些参数。 在ANSYS中的HFSS仿真中定义天线阵列如下: 与老版本不同的是:中心点坐标(Center Position)和布局设置(Layout Setting)。在布局设置中

Ethan的博客 1万+

自动化测试面试官:浅拷贝和深拷贝有什么区别?

很多编程语言都有这个

公众号已改名为-程序员阿沐 322

白炽灯寿命工程解析:从钨丝蒸发到电压控制的可靠性设计

白炽灯作为一种经典的电光源,其工作原理基于电流通过钨丝产生热辐射发光。在高温下,钨丝会持续蒸发导致灯丝逐渐变细、电阻增大,这是影响其寿命的核心物理机制。从工程角度看,白炽灯的可靠性设计涉及材料科学、热力学和电路设计的交叉,技术价值在于通过理解其失效原理,可以在成本与性能间取得最佳平衡。在实际应用中,电压波动、开关浪涌电流和机械振动是主要寿命杀手,尤其在工业控制、仪器仪表和特定照明场景中,合理的设计能大幅提升系统稳定性。本文深入探讨了钨蒸发、热应力等关键因素,并结合浪涌抑制和降压设计等实战技巧,为工程师提供了

weixin_28684655的博客 570

Python直接赋值&深浅拷贝

在写接口自动化的时候,在setup_class里初始化了一个dic1,在test case1里将dic1赋值给dic2,随后对dic2进行修改。然后在test case2里使用dic1时,发现dic1也被修改了,一番查找之下才发现是自己没有搞清楚直接赋值和深浅拷贝的原理。因此,直接赋值后的变量指向同一个子对象地址,无论是原变量还是赋值变量改变其值后,两个变量的值均改变;浅拷贝后,原对象的修改会对拷贝后对象生效,但拷贝后对象不对原对象生效;深拷贝则是两个完全独立的变量,两者互不影响。

tianshuiyimo的博客 295

YOLO26改进策略【Head】| (独家改进)轻量化检测头:利用 EfficientNet 中的移动倒置瓶颈模块 MBConv 改进检测头

本文记录的是基于移动倒置瓶颈 MBConv 的 YOLO26 的检测头轻量化改进方法研究。采用了独特的倒置瓶颈结构,通过的操作以及,在高效提取特征的同时极大地降低了计算量。本文将的设计优势融入j检测头中,使其在目标检测任务中不仅能够更精准地识别各类目标,还能在计算资源有限的情况下快速响应,展现出更为卓越的实时检测能力。EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks的实现代码如下: 首先在代码中加入如下代码: 其

Limiiiing的博客 286

ABAP Bits and Bytes 完全参考,理解内存、字节、位运算与类型解释

ABAP开发中业务代码与底层字节处理的差异:业务层关注采购订单、会计凭证等语义信息,而接口开发需处理十六进制、位运算等底层操作。文章通过整数变量示例说明同一段字节在不同类型解释下会呈现不同值,并介绍x类型、位运算及类型转换的实际应用。这些知识在文件接口、加密传输等场景中尤为重要,开发者需注意字节序、编码等问题。建议将底层协议处理与业务逻辑分离,以保持代码清晰和可维护性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 142

深浅拷贝的意义和用法

一、什么是深浅拷贝?        在了解深拷贝之前,应该先了解以下2个概念:        传值:表示传递的是变量所赋的值,简单来说:就是相当于把变量的值全新复制了一份。当一个变量的值赋给另一个新变量的时候,新变量修改了值,不会影响原来变量的值。        传址: 表示传递的是变量所在的内存地址

m0_60501766的博客 554

基于STM32、HAL库的WF162A 11BA T&R气压传感器 驱动程序设计

/ 转换为7位地址。* @param temperature: 存储读取到的温度值(°C)* @param temperature: 存储读取到的温度值(°C)* @param pressure: 存储读取到的压力值(bar)* @param pressure: 存储读取到的压力值(bar)* @param range: 压力范围(bar)

corlin6688的博客 363

对深拷贝与浅拷贝的再次理解

对深拷贝与浅拷贝的再次理解     记得11年底找工作的时候,面试时曾经遇到有面试官问的对深拷贝与浅拷贝的理解,那时候自己回来查了资料,写了篇博客,感觉自己理解了,其实理解的不深刻,最近在调试bug的时候,再次遇到深拷贝与浅拷贝,认真分析了,写写自己的心的吧。     先说下自己的理解吧,浅拷贝,即在定义一个类A,使用类似A obj;  A obj1(obj);或者A obj1 = obj

feitianxuxue的专栏 5万+

GEE:计算非水体概率影像(水体淹没次数)

本文记录了在GEE平台上使用哨兵数据计算沿海地区非水体概率图像的计算方法和代码。基于像素,概率范围0-100。首先使用哨兵数据(s2)和大津算法(OTSU)计算的水体指数阈值来提取水体,然后计算研究区非水体像素在时间段内出现的概率。

养乐多的博客 2140

Halcon 色彩标定:RGB空间下实现白平衡与CCM矩阵合成静态HDR图像

摘要 本文介绍了一种基于Halcon的色彩校正方法,结合白平衡与灰轴约束最小二乘法实现精准颜色还原。方法分为三步:1)自动定位色卡区域并提取灰阶块计算白平衡增益;2)通过前三列色块建立测量值与标准值的映射关系;3)引入灰轴约束条件求解色彩校正矩阵(CCM),确保中性灰区域不偏色。算法采用中位数计算白平衡增益以提高鲁棒性,并通过旋转校正处理色卡倾斜问题。实验表明,该方法能有效消除相机采集的系统色偏,适用于颜色测量、表面检测等机器视觉场景。文末提供了完整代码实现。

LIN943168247的博客 406

深拷贝浅拷贝的理解

如上,通过对数组的for循环,即可实现对数组的深拷贝了。 通过Array对象的纯函数能更快的实现一层深拷贝:[2,3,5,7,11].map(x=>x)

weixin_41674235的博客 682

【YOLOv10改进[Backbone]】使用ADNet改进YOLOv10在噪声干扰下的目标检测效果(图像去噪)+ 含全部代码和详细修改方式 + 手撕结构图 + 全网首发

使用ADNet改进YOLOv10在噪声干扰下的目标检测效果(图像去噪)+ 含全部代码和详细修改方式 + 手撕结构图 + 全网首发 + 遥遥领先

静谧、淡雅 2858

【python测试开发栈】—理解python深拷贝与浅拷贝的区别

内存的浅拷贝和深拷贝是面试时经常被问到的问题,如果不能理解其本质原理,有可能会答非所问,给面试官留下不好的印象。另外,理解浅拷贝和深拷贝的原理,还可以帮助我们理解Python内存机制。这篇文章将会通过一些例子,来验证内存拷贝的过程,帮助大家理解内存拷贝的原理。 Python3中的数据类型 我们首先得知道Python3中的数据被分为可变类型和不可变类型 可变类型:Number(数字)、String...

布道师玄柯的专栏 927

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python 栈_【python测试开发栈】—理解python深拷贝与浅拷贝的区别

内存的浅拷贝和深拷贝是面试时经常被问到的问题,如果不能理解其本质原理,有可能会答非所问,给面试官留下不好的印象。另外,理解浅拷贝和深拷贝的原理,还可以帮助我们理解Python内存机制。这篇文章将会通过一些例子,来验证内存拷贝的过程,帮助大家理解内存拷贝的原理。Python3中的数据类型我们首先得知道Python3中的数据被分为可变类型和不可变类型可变类型:Number(数字)、String(字符串...

weixin_39627408的博客 72

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

java List复制:浅拷贝与深拷贝

List浅拷贝众所周知,list本质上是数组,而数组的是以地址的形式进行存储。 如上图将list A浅拷贝给list B,由于进行的是浅拷贝,所以直接将A的内容复制给了B,java中相同内容的数组指向同一地址,即进行浅拷贝后A与B指向同一地址。造成的后果就是,改变B的同时也会改变A,因为改变B就是改变B所指向地址的内容,由于A也指向同一地址,所以A与B一起改变。 几种浅拷贝1、遍历循环复制List<

DeMonnnnnn 11万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java:深拷贝与浅拷贝整理及代码书写

文章目录前言一、Java深浅拷贝的区别二、代码手写实现1.代码2.测试结果总结 前言 Java深浅拷贝是老生常谈的问题,但是以往的学习中只知道深浅拷贝的区别,没有自己动手去书写过深浅拷贝的代码和比较区别,这篇博客就此进行整理 一、Java深浅拷贝的区别 数据分为基本数据类型和引用数据类型。基本数据类型:数据直接存储在栈中;引用数据类型:存储在栈中的是对象的引用地址,真实的对象数据存放在堆内存里。 浅拷贝:对于基础数据类型:直接复制数据值;对于引用数据类型:只是复制了对象的引用地址,新旧 对象指向同一个内存

qjyws的博客 770

python中关于深拷贝和浅拷贝的详解

python中关于深拷贝和浅拷贝的详解 在python的语法中,有两种变量的拷贝方式 一种是深拷贝,一种是浅拷贝 我们先说深拷贝 语法: 需要通过导入系统的copy模块中的deepcopy才可以 深拷贝是将操作对象整体复制出来一份,与其原来拷贝的对象没有联系,拷贝后重新分配一个内存地址 对拷贝和的对象进行各种操作,原对象也不收到影响 再来说浅拷贝 语法: 浅拷贝的语法很多 浅拷贝中,虽然对象本身的...

秋叶夏风的博客 569

面试官:说是Java中List的浅拷贝与深拷贝!

面试官:说是Java中List的浅拷贝与深拷贝!最近在面试很多 5 年左右的程序员,问到Java中List的浅拷贝与深拷贝,很少有人答对。今天我们一起来聊聊这个话题!众所周知,List 本...

xmt1139057136的专栏 1958

Python 接口自动化测试中的深拷贝与浅拷贝

在编写接口自动化测试脚本时,我们经常需要复制数据结构来模拟不同的测试场景。理解这两种拷贝的区别对保证测试数据的一致性和准确性至关重要。【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)copy 模块:提供了 copy() 和 deepcopy() 函数。内置函数:如 list.copy() 或 dict.copy()。浅拷贝:只复制引用,对于可变对象内部的元素不进行复制。深拷贝:不仅复制引用,还会复制对象内部的所有元素。输出结果:​​​​​​​。输出结果:​​​​​​​。

weixin_67553250的博客 569

面试题系列 —— 5 手写深拷贝

理解并手写深拷贝和浅拷贝

qq_46030564的博客 897

【C++ string 类模拟实现】:从浅拷贝陷阱到深拷贝的完美落地

剖析浅拷贝缺陷:编译器默认拷贝仅复制指针值,导致多个对象共享同一资源,析构时重复释放引发崩溃。随后提出解决方案——深拷贝,介绍两种实现方式:传统版通过"开空间→拷贝→释放"流程确保资源独立;现代版则利用构造函数简化操作。文章还详细讲解了string类核心函数如reserve的扩容逻辑,强调资源申请、使用与释放的闭环管理。通过模拟实现string类,帮助开发者掌握底层内存管理机制,规避浅拷贝陷阱。

月夜的风吹雨的博客 1158

ArrayList数组深度拷贝

目录 1.创建JavaBean,切记一定要序列化 2.编写深度拷贝方法 3.编写测试方法 1.创建JavaBean,切记一定要序列化 /** * Desc: 测试Bean * Created by Jack on 2020/5/15 15:08 **/ public class Person implements Serializable { private String name; private int age; public String getNa

Jackchen 的博客 1720

Java中res.add(list)和res.add(new ArrayList<Integer>(list))的区别

结论与总结: 1.res.add(list)是浅拷贝,将res尾部指向了path地址,后续list内容的变化会导致res的变化。 2.res.add(new ArrayList<>()) 是深拷贝,开辟一个独立地址,地址中存放的内容为list链表,后续list的变化不会影响到res。 具体测试案例: 输出结果: 参考博客: 参考1 参考2 ...

m0_51816870的博客 1057

Python易错点总结

三个单引号'''或者双引号"""既可以注释也可以当作字符串。 python 中的浅拷贝只拷贝父对象不拷贝子对象,深拷贝父对象子对象全部拷贝。 import copy a = [1, 2, 3, 4, ['a', 'b']] b = a c = copy.copy(a) d = copy.deepcopy(a) a.append(5) a[4].append('c') 其中b是a的...

sunlanchang的博客 862

笔记

三次握手最后一次失败时 失败时服务器并不会重传ACK报文,而是直接发送RTS报文段,进入CLOSED状态。这样做的目的是为了防止SYN洪泛攻击。 关于python装饰器 python装饰器本质上就是一个函数,最大的作用就是对于我们已经写好的程序,我们可以抽离出一些雷同的代码组建多个特定功能的装饰器,这样我们就可以针对不同的需求去使用特定的装饰器,这时因为源码去除了...

feiyang5260的博客 221
上一篇: redis配置文件 Record
下一篇: 不同数据类型之间的赋值-测试
ଳxin
博客等级 码龄8年 83粉丝 197原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值