Java数组调用clone()方法,返回的对象是深拷贝还是浅拷贝?

结论:

  1. 一维数组深拷贝(重新分配内存,并复制值)
  2. 二维数组浅拷贝(只传递引用)

注:若要实现二维数组的深拷贝,可以把二维数组内的每个数组分别用clone()方法复制。

原文地址:https://www.cnblogs.com/alyiacon/p/12543122.html

时间: 2024-10-11 21:08:04

Java数组调用clone()方法,返回的对象是深拷贝还是浅拷贝?的相关文章

详解Java中的clone方法

转载自:http://blog.csdn.net/zhangjg_blog/article/details/18369201 Java中对象的创建 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那么在java语言中,有几种方式可以创建对象呢? 1 使用new操作符创建一个对象 2 使用clone方法复制一个对象 那么这两种方式有什么相同和不同呢? new操作符的本意是

详解Java中的clone方法:原型模式

Java中对象的创建 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那么在java语言中,有几种方式可以创建对象呢? 1 使用new操作符创建一个对象2 使用clone方法复制一个对象 那么这两种方式有什么相同和不同呢? new操作符的本意是分配内存.程序执行到new操作符时, 首先去看new操作符后面的类型,因为知道了类型,才能知道要分配多大的内存空间.分配完内存之

转:Java中的Clone()方法详解

Java中对象的创建 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那么在java语言中,有几种方式可以创建对象呢? 使用new操作符创建一个对象 使用clone方法复制一个对象 那么这两种方式有什么相同和不同呢? new操作符的本意是分配内存.程序执行到new操作符时, 首先去看new操作符后面的类型,因为知道了类型,才能知道要分配多大的内存空间.分配完内存之后,再

Java中的clone方法详解

Java中对象的创建 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那么在java语言中,有几种方式可以创建对象呢? 1 使用new操作符创建一个对象 2 使用clone方法复制一个对象 那么这两种方式有什么相同和不同呢? new操作符的本意是分配内存.程序执行到new操作符时, 首先去看new操作符后面的类型,因为知道了类型,才能知道要分配多大的内存空间.分配完内存

JAVA中的clone方法剖析

原文出自:http://blog.csdn.net/shootyou/article/details/3945221 java中也有这么一个概念,它可以让我们很方便的“制造”出一个对象的副本来,下面来具体看看java中的Clone机制是如何工作的?     1. Clone&Copy     假设现在有一个Employee对象,Employee tobby =new Employee(“CMTobby”,5000),通常我们会有这样的赋值Employee cindyelf=tobby,这个时候只

黑马程序员——关于java字节流的read()方法返回值为int的思考(转载)

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! -------  之前一直不明白java字节流的read()方法返回值为什么为int,今天在网上找到了答案.以下为转载,原文地址:http://blog.sina.com.cn/s/blog_9e351f9b01015kgp.html 我们都知道java中io操作分为字节流和字符流,对于字节流,顾名思义是按字节的方式读取数据,所以我们常用字节流来读取二进制流(如图片,音乐 等文件).问题是为什么字节流中定义的

Java数组List换算方法

1.List转换到一个数组.(这里List它是实体是ArrayList) 调用ArrayList的toArray方法. toArray public <T> T[] toArray(T[] a)返回一个依照正确的顺序包括此列表中全部元素的数组.返回数组的执行时类型就是指定数组的执行时类型. 假设列表能放入指定的数组,则返回放入此列表元素的数组.否则,将依据指定数组的执行时类型和此列表的大小分配一个新的数组. 假设指定的数组能容纳列表并有剩余空间(即数组的元素比列表的多),那么会将数组中紧跟在集

【java】克隆clone()方法和相等equals()方法的重写

1.为什么要重写clone()方法? Java中的浅度复制是不会把要复制的那个对象的引用对象重新开辟一个新的引用空间,当我们需要深度复制的时候,这个时候我们就要重写clone()方法. 2.equals()和clone()方法重载的示例 Hourse类: import java.util.Date; public class House implements Cloneable { private int id; private double area; private Date whenBul

java数组拷贝的方法

//数组拷贝的方法:System.arraycopy()  /* 查看源代码文件中的System类的arraycopy方法: 这是我的安装目录:D:\OpenSourceSoftware\Java\jdk1.7.0_80\src\java\lang\System.java System.java文件中的arraycopy方法代码如下: public static native void arraycopy(Object src,  int  srcPos,