当前位置: 首页 > news >正文

面试:说一下深拷贝,浅拷贝,引用拷贝吧;Object类中的clone是哪种呢?

目录

  • 深拷贝、浅拷贝、引用拷贝
  • Object类的clone()方法

深拷贝、浅拷贝、引用拷贝

在这里插入图片描述
● 浅拷贝: 对基本数据类型进行值传递; 对引用类型,复制了一份引用类型的变量 里面存储的内存地址一样 指向的对象也一样。

● 深拷贝:对基本数据类型进行值传递,对引用数据类型,创建一个新的对象,并复制其内容,此为深拷贝。

● 引用拷贝: 是对引用地址的拷贝,说明引用地址一样,指向堆中的对象是同一个对象。

Object类的clone()方法

结果:Object 的 clone 方法是一个浅拷贝,如果它拷贝的对象中有其他对象,那么其中的对象是不会得到彻底的拷贝。

深拷贝是彻底的拷贝,两对象中所有的成员都是独立的一份,而且,成员对象中的成员对象也是独立一份。

浅拷贝中的某些成员变量可能是共享的,深拷贝如果不够彻底,就是浅拷贝。

代码验证:

public class Person implements Cloneable{private int age ;private String name;public Person(int age, String name) {this.age = age;this.name = name;}public Person() {}public int getAge() {return age;}public String getName() {return name;}@Overrideprotected Object clone() throws CloneNotSupportedException {return (Person)super.clone();}
}

按照如下代码验证:

Person p = new Person(23, "zhang");
Person p1 = (Person) p.clone();String result = p.getName() == p1.getName() ? "clone是浅拷贝的" : "clone是深拷贝的";System.out.println(result);
//输出为:clone是浅拷贝的
http://www.lryc.cn/news/252515.html

相关文章:

  • 接口压测指南
  • 计算机辅助药物设计AIDD-小分子-蛋白质|分子生成|蛋白质配体相互作用预测
  • 深度学习-yolo目标检测-机器学习-计算机视觉-python学习路线(呕心沥血出品-绝对精品-附资源链接)
  • ubuntu2204 防火墙ufw限制某ip对某端口的访问
  • 常见代码优化案例记录
  • 【android开发-04】android中activity的生命周期介绍
  • java后端技术演变杂谈(未完结)
  • UDS 诊断报文格式
  • kafka的详细安装部署
  • 【数据分享】2015-2023年我国区县逐月二手房房价数据(Excel/Shp格式)
  • PTA 7-226 sdut-C语言实验-矩阵输出(数组移位)
  • Android 各平台推送通知栏点击处理方案
  • 什么是网络安全 ?
  • 【前端】-【electron】
  • Python中的类(Class)和对象(Object)
  • dp-拦截导弹2
  • 初识动态规划算法(题目加解析)
  • Vue2.0与Vue3.0的区别
  • 探索人工智能领域——每日20个名词详解【day6】
  • C++初阶 | [七] string类(上)
  • Django总结
  • 【qml入门系列教程】:qml QtObject用法介绍
  • 2分图匹配算法
  • [EndNote学习笔记] 导出库中文献的作者、标题、年份到Excel
  • SQL Sever 基础知识 - 数据查询
  • Vue入门——v-on标签
  • JVM:双亲委派(未完结)
  • Leetcode 2661. 找出叠涂元素
  • vscode代码调试配置
  • PTA 7-225 sdut-C语言实验- 冒泡排序中数据交换的次数