版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
作者:颜廷吉《Java代码与架构之完美优化——实战经典》第六章如何优化类与接口——6.2避免使用对象的浅拷贝(41/77)目录
Contents@2、现象描述是什么?@1、优化前代码有哪些瑕疵?@3、有哪些不利影响?@4、有哪些检测工具与方法?@5、最佳解决方案是什么?@6、如何解析优化后代码?1、优化前代码有哪些瑕疵?■优化前代码实例1动动脑筋:本例代码中有哪些瑕疵,应该如何优化?2、现象描述是什么?■现象描述
用浅拷贝clone()方法对对象进行复制。3、有哪些不利影响?(1/3)■不利影响分析
为什么Java提供对象的拷贝功能呢?因为使用clone()方法生成一个对象时,不会执行构造方法,而只是在内存中进行数据块的复制。在构造方法复杂时,性能会比直接通过new生成对象要快的多。但是浅拷贝有缺陷,拷贝的基本方式是:基本类型数据进行值拷贝,对象类型数据进行地址拷贝。如果原对象的值被改变,那么相应的浅拷贝之后的对象的值也随之被改变,这样就造成了潜在的Bug。Java设计者意识到对象的生成基本都是用new关键字生成的,因此在用new关键字生成时,做了充分的性能优化。除非在有特殊复杂构造方法下,一般new生成对象的性能要优于clone()方法,因此一般用new关键字生成对象即可。
3、有哪些不利影响?(2/3)图6-1对象内存模型图6-2浅拷贝对象内存模型浅拷贝的实质其实就是直接内存栈区的复制。深拷贝的实质不但拷贝内存栈区而且把拷贝对象所对应的堆区的内容也复制一份。3、有哪些不利影响?(3/3)图6-3深拷贝对象内存模型4、有哪些检测工具与方法?■检测工具或方法
1.(R)代码检查5、最佳解决方案是什么?■最佳解决方案
除非必要,不要克隆对象,即使克隆也要尽可能用深度克隆方法。6、如何解析优化后代码?■优化后代码解析
代码4的Person类与代码2的Person类相比,只是在clone()方法里面增加了关键行代码——生成一个新的mother类并赋予拷贝后的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026上半年云南事业单位联考备考题库职位表下载及参考答案详解
- 2025湖南永州市国有资本投资运营有限公司招聘工作人员2人备考题库及参考答案详解
- 2025福建莆田市秀屿区市场监督管理局招聘驾驶员(编外)1人备考题库及参考答案详解
- 2026新疆昆东经开区管委会招聘19人备考题库及答案详解(新)
- 2025年西安未央区辛家庙社区卫生服务中心招聘备考题库(8人)有答案详解
- 2026广东深圳市儿童医院杰青团队诚聘博士后备考题库及答案详解(夺冠系列)
- 2026年上海市莘庄中学第二批教师招聘备考题库附答案详解
- 2026广州城建职业学院博士专任教师招聘44人备考题库及完整答案详解1套
- 2026河南安阳新东投资集团有限公司招聘11人备考题库附答案详解
- 2026年大连双D高科产业发展有限公司公开选聘备考题库及答案详解(易错题)
- 2024-2025学年四川省广元市苍溪县九年级(上)期末数学试卷(含答案)
- T-CBDA 82-2024 家装防水防潮与渗漏修缮技术规程
- 基于灰色模型下的经济发展生育意愿分析与预测
- 肠道屏障修复研究-洞察及研究
- 审计数据管理办法
- 2025国开《中国古代文学(下)》形考任务1234答案
- 研发公司安全管理制度
- 儿童口腔诊疗行为管理学
- 瓷砖样品发放管理制度
- 北京市2025学年高二(上)第一次普通高中学业水平合格性考试物理试题(原卷版)
- 短文鲁迅阅读题目及答案
评论
0/150
提交评论