今天工作中碰到一个clone的问题

今天开发中遇到一个问题:

需要将一个对象进行clone,对他的副本的属性进行修改,供一个特定的对象使用,完成某个需求。

平时对java的clone看的不是很多,相当然的使用了Object的clone()方法:

SomObject obj = new SonObject();


SomObject objClone =obj.clone();

结果发现更新obj的某个成员变量的时候(ArrayList),objClone中的成员变量也相应的发生变化!但是obj.hashCode() 却不等于objClone.hashCode(),说明他们并没有指向同一个对象!看到这个结果一下子蒙了,这是为什么呢??

仔细想了一下,恍然大悟:java中的clone是浅拷贝,只是拷贝对象本身,以及基本数据类型,对于对象的非基本数据类型变量,比如ArrayList等,并不进行拷贝!

---------
java 代码
 
public class SomObject implements Cloneable{          private List wifeList;          private int count;          ....          public Object clone(){           try{               return super.clone();           }catch(....){               ....           }           return null;       }   }      SomObject obj = new SomObject();      obj.setCount(1);   obj.setWifeList(new ArrayList("Beautifule"));      SomObjec cloneObj = (SomObject)obj.clone();      obj.setCount(2);   obj.setWifeList(new ArrayList("Tender"));      System.out.println(obj.getCount());//结果 2   System.out.println(obj.getWifeList().get(0));//Tender         System.out.println(cloneObj.getCount());//结果 1   System.out.println(cloneObj.getWifeList().get(0));//Tender  

【日常小结】项目Modbus RTU 协议 Modbus RTU(远程终端) 协议 一、前言 最近因为码跺宽度测量项目推广升级,更换了摄像头(换成了基恩士摄像头)和光栅(换成了施莱格05LCM系列光栅),导致原来的程序用不了了,然而这个软件升级的任务落到了我身上,作为机械非科班出身的我要学习TCP和Modbus RTU通信协议,也算是自我突破了。本文只对Modbus/RTU/HEX 进行简单的小结。 二、Modbus Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻 阅读详情

相关推荐

SAP MM委外加工保姆级教程:从BOM配置到MIGO发货的完整避坑指南

本文提供SAP MM模块中委外加工的完整操作指南,涵盖从BOM配置到MIGO发货的全流程。详细解析委外采购和工序委外两种模式,包括主数据配置、采购订单创建及物料移动等关键步骤,帮助用户规避常见错误,提升供应链管理效率。特别适合制造业企业实施SAP外包业务参考。

weixin_26905487的博客 527

git clone 遇到的坑

 问题描述: 使用git clone 拉代码遇到了需要输入密码的情况,但是我输入密码输入不了还有怎么都拉取不下代码 很郁闷的说~ 于是,我去问其他人,配置了我的SSH公匙,但是还是不行,我又去百度,果然神奇的百度给了我一点解决问题的灵感,原文地址在这里,他是因为自己手贱新建了一个文件夹权限。 联想自己也是手贱,初始化(git init)了一个仓库,怪不得需要密码了,之后我在另外一个文件...

weixin_33937499的博客 1090

Oracle19c-集群节点重新添加

Oracle RAC集群在极端情况下,如硬件、主机,集群软件损坏,导致集群节点永久无法使用,需要对集群节点进行修复,删除节点集群信息并重新加入集群,以恢复集群原有的架构。 本文主要讲述一套两节点的Oracle19c RAC集群,节点一orcl01由于主机异常无法正常启动,在对主机进行重装之后,需要将orcl01节点重新加入集群的操作步骤。环境信息: 操作系统:Linux 7 RAC集群:19C 主机节点:orcl0...

sinat_36757755的博客 2352

关于clone的问题

偶今天真是郁闷呀,在系统中用了一个静态的hashtable缓存工作流定义(因为在运行期,工作流定义是不可能改变的),但是偶忘了在调用客户端的JAVABEAN时,业务系统给JAVABEAN的参数重新赋了值,结果..........,偶都不好意思说了,所有的实例都取了第一次的赋值。于是乎,偶赶紧给JAVABEAN对象实现了Cloneable,然后在给参数重新赋值的地方,用clone的对象,

873

红外弱小目标检测:IPI算法解读及MATLAB复现

参考文献:[1]C. Gaoet al., “Infrared Patch-Image Model for Small Target Detection in a Single Image,” vol. 22, no. 12, pp. 4996–5009, 2013. 本文整理????论文笔记,并附MATLAB实现代码。 一、阅读笔记 1. 摘要 IPI算法是单帧检测算法; 利用背景的非局部子相关性(non-local self-correlation ofbackground),将目标检测转..

小草莓的魔法笔记 1万+

微信小程序获取用户手机号全流程实战(附完整代码)

本文详细介绍了微信小程序获取用户手机号的全流程实战,包括前端授权、后端解密及安全合规要点。通过传统授权按钮和新版手机号快速验证组件两种方案,帮助开发者高效实现功能,并附完整代码示例。重点解析了微信小程序接口的使用技巧和常见问题解决方案,确保数据安全与用户体验。

weixin_29280219的博客 568

2026届嵌入式校招16家名单拆解:赛道、技术栈与投递策略全解析

嵌入式系统作为软硬件深度融合的技术领域,其开发流程涉及从底层MCU裸机编程到Linux内核驱动、从通信协议栈到电机控制算法的完整链路。理解C语言面向对象设计、内存管理、中断机制等基础原理,是构建可靠工程系统的前提。随着新能源汽车、工业控制与芯片国产化进程加速,具备内核源码分析能力与扎实计算机功底的嵌入式人才价值持续攀升。在校招季,企业不仅考察候选人对AD/DA、PWM、CAN等外设的掌握,更关注问题定位与系统级调试思维。面对车企、家电、工控、芯片设计等多元化岗位,依据赛道成长性、技术密度与个人匹配度制定投递

weixin_34320724的博客 323

Python实战:3分钟搞定A股K线数据抓取(附东方财富/腾讯API完整代码)

本文为量化交易初学者提供了一份快速获取A股K线数据的实战指南。通过对比东方财富与腾讯财经两大免费API的优劣,并附上可直接运行的完整Python代码,帮助读者在3分钟内搭建起自己的数据抓取管道,为构建量化交易系统奠定坚实的数据基础。

weixin_29062255的博客 2910

Git教程 git pull 和 git clone的区别

.

我是菜鸡 2万+

TASK02【datawhale组队学习】视觉感知与手眼协调,计算机视觉在机器人中应用,手眼标定算法实现,深度估计与3D重建

参考教程AI硬件与机器人技术教程:https://github.com/datawhalechina/ai-hardware-robotics视觉感知与手眼协调,计算机视觉在机器人中应用,手眼标定算法实现,深度估计与3D重建单目深度估计 (Monocular Depth Estimation)DPT 的全称是 Dense Prediction Transformer。

m0_52024881的博客 1191

YOLOv11损失函数原理与源码解读:从调参血泪史到源码级优化

本文深入解析YOLOv11目标检测模型的损失函数设计,揭示其相比前代的关键改进。重点剖析了回归损失中动态权重的小目标优化、分类损失的带温度系数softmax、以及目标损失的自适应阈值机制等创新点。作者通过源码分析指出常见实现陷阱,如梯度回传的正确处理方式、标签分配的匹配策略等。结合实战经验,给出针对小目标检测、类别误判等典型问题的调参建议,并分享实用的调试工具代码片段。最后强调损失函数调参需结合具体任务,指出后处理对实际部署效果的重要影响。全文以工程实践为导向,为开发者提供可直接落地的优化思路。

as1225120794的博客 441

java clone时遇到的一个奇怪问题

     今天在做clone实验时遇到一个奇怪的问题,根据《java核心技术第一卷》的叙述,如果一个对象需要clone,而且其内部还存在可变(一般为引用类型)类型的数据,那么这个可变类型的数据在克隆时也需要调用自己的clone方法,如代码中的Employee2中的clone方法中的注释部分,否则为浅度克隆,但是根据自己的实验,在Employee2中的方法并没有调用Date方法中的clone...

shuye001的专栏 223

openlayers:实现在连续更改时间维度时如何平滑地重新加载层 (附完整源码)

openlayers:实现在连续更改时间维度时如何平滑地重新加载层 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 348

解决git clone报错的多个问题

git clone报错的多个问题: - fatal: Could not read from remote repository - kex_exchange_identification: Connection closed by remote host - ssh_dispatch_run_fatal: Connection to xx.xx.xx.xx port 22: Operation timed out

欢迎来到我的博客呐~ github: https://github.com/Penguin-zlh 7228

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

使用git clone遇到的一些问题

记录一下使用git clone遇到的一些问题

qq_51738873的博客 1025

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

C# 之类复制 MemberwiseClone与Clone(深 浅 Clone)

今天在《大话设计模式》上看了原型模式,里面对于深浅clone做了一定的介绍,本人觉得下面这篇文章对于处理深clone是提出了一种较好的方法。      MemberwiseClone方法创建一个浅表副本,具体来说就是创建一个新对象,然后将当前对象的非静态字段复制到该新对象。如果字段是值类型的,则对该字段执行逐位复制。如果字段是引用类型,则复制引用但不复制引用的对象。因此,原始对象及其复本引用的

gooodiuck的专栏 4776

Git问题:Git clone 时遇到fatal: protocol ''https'' is not supported问题解决方案

一、问题来因 今天在整合项目时需要将码云上的仓库clone下来,在Git Bash 里执行 clone命令报错protocol ''https'' is not supported,经过一番查找,找到了原因,分享给大家,其实也是我们常犯的一个错误。 二、寻找解决方案 开始在优快云上找各种解决办法,并没有任何成果,遇到的问题情况和我都不一样。 我一直秉承的思想是问题不能只有解决了才行,我们应该去...

千帆过烬的博客小站 2万+

解决HuggingFace不能git clone的问题

通过设置镜像,解决国内HuggingFace不能clone的问题。

weixin_60335028的博客 1034

java json clone_从JVM角度看看Java的clone操作

欢迎关注专栏:Java架构技术进阶。里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦。最近在给熔断器组件增加一个降级策略(Hystrix好像没有这个配置),我们提供了如下几种策略:1、默认策略2、返回常量值3、抛出指定异常4、执行一段groovy脚本当然了,这些配置都是可以在平台上配置,并立即生效的。目前返回常量值的实现如下:从JVM角度看看Java的clone操作今天发现,...

weixin_42131785的博客 175

解决git submodule clone时问题的服务器认证问题

用文本编辑器打开id_isa.pub(如果生产key时输入了文件名,则用相应的*.pub文件,把内容复制到github --> settings --> SSH & PGP keys --> New SSH key 的编辑框中,保存,再更新submodule就可以了。git submodule的子模块管理上存在一些问题,应为用户的使用习惯不同,在加入git submodule时,可能使用了git@…的下载方式,如果你恰巧习惯使用https下载时,就会出现认证失败的问题。这是再下载子模块,又出现了新问题。

rotciv的博客 1242

rust copy 和 clone 区别

Rust 中有两个常见的 trait,Clone 和 Copy,许多初学者没有搞明白。今天我们来专门谈一谈这两个 trait。 Copy 的含义 Copy 的全名是 std::marker::Copy。请大家注意 std::marker 这个模块里面的所有的 trait 都是特殊的 trait。目前稳定的有四个,它们是 Copy、Send、Sized、Sync。它们的特殊之处在于它们是跟编译器密切绑定的,impl 这些 trait 对编译器的行为有重要影响。在编译器眼里,它们与其它的 trait 不一样

跨链技术践行者 2916

jQuery clone后datepicker问题

1,今天在项目中发现。clone(true)后,datepicker初始化失败,点击当前datepicker。直接跳到被克隆的那个datepicker中去了。然后找了很多资料也没有找到如何清除datepicker的绑定事件。最好只好转换思路。就是将一个空的没有被datepicker的初始化的文本框隐藏在界面。每次复制的时候复制这个文本框。复制完以后绑定该克隆后的datepicker事件就可以了。 ...

zhudiwoaini的专栏 622

如何提升github的clone速度(简单粗暴,亲测有效)

今天在github上看上了一个项目,想要clone到本地来。项目比较大,clone速度很慢,一开始还有50-60k的速度在跑,到后来居然给我降到了4K/s,看得实在是蛋疼。于是去百度,看看有没有什么解决办法。一搜之下,网页确实出来了一大堆。试了一下,没一个靠谱的,大多数都是去改那个host文件,殊不知这个办法早就失效了,改来改去完全没啥用。 历经千辛万苦,终于在一知乎的回复(https://www.zhihu.com/question/27159393)中找到了一个极其简单,但却真实有效的办法: 只需要将

不积跬步,无以至千里! 9475

用git从github上clone项目遇到的问题

今天从github上clone项目出现了一些错误,特此记录一下。 查阅文章:https://blog.youkuaiyun.com/qq_37555071/article/details/114260533 试了文中的几种方法,都没有成功。 然后我把代理全都关了,

qq_36262908的博客 553
上一篇: 随口乱说
下一篇: 最近火气比较大
hcom
博客等级 码龄22年 14粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值