java的深拷贝和浅拷贝

java的深拷贝和浅拷贝 总结深拷贝基本类型复制其值引用类型都会创建新的实例。浅拷贝对于基本类型就是复制其值对于引用类型则是复制了指向这些数据类型的内存地址。浅拷贝Shallow Copy浅拷贝是指在创建新对象时对于对象中的基本数据类型的成员变量会复制其值而对于引用类型成员变量则只复制其引用也就是说新旧对象共享同一个引用类型成员变量指向的对象。如果通过新对象修改了引用类型成员变量指向的对象那么原对象也会受到影响。Java中实现浅拷贝的一种常见方式是通过Object类的clone()方法。需要注意的是clone()方法是受保护的所以通常需要在类中重写此方法并声明为public同时还需要实现Cloneable接口。但这种方式仅能实现浅拷贝。深拷贝Deep Copy深拷贝则是完全复制对象及其所有引用类型成员变量指向的对象即不仅复制引用本身还复制引用指向的对象。这意味着新对象和原对象以及各自的所有引用类型成员变量指向的对象都是相互独立的修改其中一个对象不会影响另一个对象。Java中实现深拷贝有几种常见方式序列化Serialization实现深拷贝最常用的方式之一是利用Java的序列化机制。对象实现Serializable接口后可以通过序列化和反序列化过程完成深拷贝。这种方法会将对象及其所有引用类型成员变量指向的对象全部复制一份。构造函数另一种实现深拷贝的方式是在类中定义一个构造函数该构造函数接受同类型的一个对象作为参数然后在构造函数中逐个复制成员变量包括递归地复制引用类型成员变量指向的对象。复制对象的属性对于简单对象可以手动编写代码来复制对象的每个属性包括递归复制引用类型成员变量指向的对象。使用第三方库也可以使用像Apache Commons Lang库中的org.apache.commons.lang3.SerializationUtils类提供的copy(Object)方法来实现深拷贝。总的来说选择浅拷贝还是深拷贝取决于具体的应用场景和需求。浅拷贝适用于不需要完全独立副本的情况而深拷贝则适用于需要完全独立副本且对象内部可能包含其他复杂对象的情况。
MORE ARTICLES

更多报考资讯

Micrometer 系列【33】Spring Boot Micrometer Metrics 自动配置模块解析

文章目录1. 概述2. 包结构与模块划分2.1 整体分层2.2 根包:全局Filter 故障诊断2.3 actuate/endpoint 指标端点2.3 autoconfigure 核心自动配置包2.3.1 核心自动配置类2.3.2 autoconfigure/export 导出到监控系统2.3.3 内置指标 Binder 模块2.4 OTLP 开发测试辅助2…

类似小鹅通的知识付费小程序平台有哪些

知识付费小程序平台怎么选?拆解码云数智、小鹅通、有赞教育三大主流工具随着私域流量持续发展,知识付费已经成为讲师、自媒体博主、培训机构变现的重要路径。搭建一套属于自己的知识付费小程序,不用依附第三方内容平台,学员数据、…

从基础到高级:Micawber缓存机制优化与性能提升技巧

从基础到高级:Micawber缓存机制优化与性能提升技巧 【免费下载链接】micawber a small library for extracting rich content from urls 项目地址: https://gitcode.com/gh_mirrors/mi/micawber Micawber作为一款轻量级URL内容提取库,其缓存机制是…

安川PLC通讯控件在C#与VB.net中的配置与调试指南

安川PLC通讯控件在C#与VB.net中的配置与调试指南

简介:这套上位机与安川PLC通讯控件,是“工控老马”出品的程序源代码,基于MEMOBUS协议实现上位机与安川PLC的可靠通信,支持C#与VB.NET两种开发语言。它面向工业自动化领域的开发人员,尤其适合需要快速搭建上位机监控界面…

STM32计算器实战:从按键去抖到表达式解析的完整链路

STM32计算器实战:从按键去抖到表达式解析的完整链路

简介:这套基于STM32的简易计算器项目工程包,面向单片机毕设、课设、大作业及竞赛等场景,适合需要完整源码与工程结构参考的嵌入式学习者。系统以普中STM32精灵1开发板为基础,功能涵盖OLED中文欢迎界面、左右两组各四位数码管的闪烁…

Astro静态站点生成与岛屿架构实战:从React切换到零JS渲染

Astro静态站点生成与岛屿架构实战:从React切换到零JS渲染

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

JOB GUIDES

看完资讯,岗位指南也顺手看看

报考是一整套动作:先定岗位,再对条件、看科目、备资料。下面是十个岗位的完整指南入口。

SERVICES

报考路上,每一步都有人帮你看

从条件核对到拿证,报名流程、时间规划、服务流程、收费标准、证书查验,环环都能问。

DISTRICTS

信阳全域服务,你在哪都覆盖

本地报考咨询,按你所在区县的实际口径讲,留言就能问。

条件、材料、时间,一次帮你捋清

把想报的岗位和基本情况留言给我们,按信阳本地报考口径给你答复。