首页 > 编程语言 >java中的深拷贝和浅拷贝、Object类中的clone()

java中的深拷贝和浅拷贝、Object类中的clone()

时间:2023-06-19 10:56:43浏览次数:42  
标签:java 对象 clone Object 数据类型 拷贝 类中

概念

  • 浅拷贝:复制基本数据类型的值,以及实例对象的引用地址,拷贝出来的对象,内部类属性指向的是同一个对象
  • 深拷贝:即会拷贝基本数据类型的值,也会针对实例对象的引用地址所指向的对象进行复制,拷贝出来的对象,内部类属性指向的不是同一个对象。

Object类中的clone()方法。

默认是浅拷贝,如果需要使用对象拷贝方法,那么对象必须实现Cloneable接口,
如果要使用深拷贝,需要重写clone方法
特殊情况:
在对象内部属性是String、Integet这样的不可变对象时,使用浅拷贝拷贝出来的对象是一样的,但是如果修改了其中一个对象的String对象,那么就变成了两个不同的对象。

标签:java,对象,clone,Object,数据类型,拷贝,类中
From: https://www.cnblogs.com/yliunyue/p/17490561.html

相关文章

  • Java的Comparable和Comparator
    Java的Comparable和Comparator当我们使用自定义Java对象执行比较时,我们可以使用Comparable或Comparator接口。Java可比对象Comparable接口对实现它的每个类的对象强加了总体排序。此排序称为类的自然排序。该类的compareTo()方法必须实现以提供自然的比较。Java比较......
  • Java多态
    Java多态多态基础Java多态,多态是面向对象特征之一,它允许我们以不同的方式执行单个动作。例如,假设我们有一个Animal类,它有一个方法sound()。由于这是一个泛型类,所以我们不能给它一个实现,如:汪汪,喵喵等。我们不得不给出一个通用的消息。publicclassAnimal{...pub......
  • Kotlin与Java互调原理项目实战
    数天前我将我java开发的工程,全部转换成了kotlin形式的工程。如果你也想做,本身也有一定的java开发安卓程序的功底。本文将比较适合你。创建kotlin工程,拷贝类文件xml文件等核心文件到工程目录下,形成一个kotlin底子的java代码组成的工程,然后通过ctrl+shift+alt+k快捷代码逐个转换......
  • java 如何字符串中提取数字,这个方法真的很不错
    Java中提取字符串中的数字,可以使用正则表达式或非正则表达式的方法。1.使用正则表达式可以使用正则表达式"\d+"来匹配字符串中的数字,并使用Matcher和Pattern类实现。importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassExtractNumbersFromString......
  • java 如何字符串中提取数字,这个方法真的很不错
    Java中提取字符串中的数字,可以使用正则表达式或非正则表达式的方法。1.使用正则表达式可以使用正则表达式"\d+"来匹配字符串中的数字,并使用Matcher和Pattern类实现。importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassExtractNumbersFromString......
  • Java判断null的几种方式
    组内codereview时,有同学提到字符串判断空值的写法,如下两种,(1)null在后,@TestpublicvoidtestDemo1(){Stringstr=null;if(str==null){System.out.println("null在后");return;}}(2)null在前,@TestpublicvoidtestDemo2(){Stringstr=null;if(n......
  • java课程设计
    importjava.sql.*;importstaticjava.sql.DriverManager.*;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.text.SimpleDateFormat;importjava.util.ArrayList;importjava.util.Random;classConnect{//建立数据库的连接Connecti......
  • 10个ai算法常用库java版
    根据AI项目的具体需求,可以选择最合适的库或框架,并开始尝试使用不同的算法来构建AI解决方案。1.Deeplearning4j 它是一个用于Java和Scala的开源分布式深度学习库。Deeplearning4j支持各种深度学习架构,包括卷积神经网络(CNN)、递归神经网络(RNN)和深度信念网络(DBN......
  • Java Websocket 02: 原生模式通过 Websocket 传输文件
    目录JavaWebsocket01:原生模式Websocket基础通信JavaWebsocket02:原生模式通过Websocket传输文件Websocket原生模式传输文件关于Websocket传输的消息类型,允许的参数包括以下三类以下类型之一,同时只能出现一个文本类型(textmessages)的消息:String......
  • java限流
    @ComponentpublicclassLimiterUtil{@ResourceprivateRedisTemplate<String,String>redisTemplate;/***固定窗口限流算法**@returntrue限流false放行*/publicbooleanfixedWindow(Stringkey,intcount){longcountCache=redisTemplate.op......