专业的JAVA编程教程与资源

网站首页 > java教程 正文

java中浅拷贝和深拷贝的区别 #干货分享

temp10 2024-10-19 14:54:54 java教程 17 ℃ 0 评论

java中浅拷贝和深拷贝的区别。

java中浅拷贝和深拷贝的区别。大家好,今天讲解浅拷贝和深拷贝的区别。先看下思维导图,从浅拷贝和深拷贝的概念案例演示以及实现深拷贝的方法三个方面进行讲解。

java中浅拷贝和深拷贝的区别 #干货分享

先看下基本概念,也就是说浅拷贝是对基本数据类型进行值传递,对引用数据类型进行引用传递般的拷贝。深拷贝是对基本数据类型进行值传递,对引用数据类型创建一个新的对象并复制其内容。下面是一个示例代码,演示了浅拷贝和深拷贝的区别浅拷贝演示。

创建一个简单的Person类,其中包含了一个引用类型字段(数组)和一个基本类型字段(年龄)。首先创建了一个原始对象original Person,通过浅拷贝复制了一个新对象shallow Copy Person。然后对原始对象的引用类型字段进行了修改,在输出的结果中可以看到浅拷贝,对象的引用类型字段也受到了影响,深拷贝演示。

首先创建了一个原始对象originalPerson,并通过深拷贝复制了一个新对象deep Copy Person。然后对原始对象的引用类型字段进行了修改,在输出的结果中可以看到深拷贝,对象的引用类型字段保持不变。下面是实现深拷贝的方法以及它们的优缺点。

·1、使用序列化与反序列化方式实现深拷贝。运行代码输出结果如下:可以看到通过深拷贝副本对象的修改不会影响到原对象。

·2、使用第三方库如Apache Clarks Lang的PREization Utils来实现深拷贝,需要首先添加Apache caps Lang库的依赖,通过这种方式副本对象的修改不会影响到原对象。

·3、要使用Jackson的ObjectEDer来实现深拷贝,需要首先添加Jackson库的依赖,然后可以按照以下代码示例来实现深拷贝。在示例中使用了Jackson库的Object 吃喝er来实现深拷贝,通过将对象转换为排头兵字符串,再将虚伪字符串转换回对象,实现了对象的深拷贝。

当面试官问到Java中浅拷贝和深拷贝的区别时,可以参考以下给出回答:并注意强调浅拷贝只复制对象本身。点赞、关注、评论。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表