java 数组的克隆
由基本数据类型构建的数组,如int【】,double【】等;java提供的内置方法并不是很多,最常用的方法是clone()方法,它会将数组复制一份,返回一个新的引用,常用来复制数组。数组对象提供的length属性用于记录数组的长度,即数组包含元素的个数、
代码如下:
public class ArrayMethod {
public static void printArr(int[] arr)
{
for(int i:arr)
{
System.out.print(i+" ");
}
System.out.println();
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
int[] arr= {3,5,7,3,7,89,54,3,2,65,7};
int[] arrnew=arr.clone();
System.out.print("arr:");
printArr(arr);
System.out.println("arr.length:"+arr.length);
System.out.println("----------");
System.out.println("arrnew");
printArr(arrnew);
System.out.println("arrnew.length:"+arrnew.length);
if(arr==arrnew)
System.out.println(" 数组arr和数组arrnew的引用地址相同!" );
System.out.println(" 数组arr和数组arrnew的引用地址不相同!" );
}
}
运行结果:
范例分析:
第15行声明一个新的数组arrnew,并将数值的值“克隆”(复制)给arrnew。从输出结果可以看出,此时数组arrnew和arr的元素是相同的,但是两者的引用值是不同的,也就是说,它们指向不同的堆地址。
java的所有类都默认继承java.lang.Object类,在ava.lang.Object类中有一个方法clone()。这个方法将返回Object对象的一个拷贝。
“克隆”(拷贝)对象返回的是一个新对象,而不是一个已有对象的引用。
“克隆”(拷贝)对象与用new操作符返回的新对象是有区别的,克隆对象是拷贝某个对象的当前信息,而不是对象的初始信息。打个比方说,如果把new构造出来的对象比喻成刚出生的“小羊羔”,过了一段时间,“小羊羔”长成了一个“小山羊”了。这时,如果通过克隆操作,得到的是另外一个一模一样的“小山羊”,而不是当初new构造出来的“小羊羔”。
java 数组的克隆相关推荐
- java数组的clone方法_深入浅出,如何更彻底地理解Java数组的clone方法
说在前面 在进入理解clone前,我们需要对"基本数据类型"和"引用数据类型"的存储模式有一个清晰的认识. 基本数据类型,变量的内容保存的是实际的值:引用数据类 ...
- java数组 序列化_程序猿的日常——Java基础之clone、序列化、字符串、数组
其实Java还有很多其他的基础知识,在日常工作技术撕逼中也是经常被讨论的问题. 深克隆与浅克隆 在Java中创建对象有两种方式: 一种是new操作符,它创建了一个新的对象,并把对应的各个字段初始化成默 ...
- 【JAVA零基础入门系列】Day14 Java对象的克隆
[JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...
- java 数组效率_java数组复制的四种方法效率对比
有关数组的基础知识,有很多方面,比方说初始化,引用,遍历,以及一维数组和二维数组,今天我们先看看数组复制的有关内容. 来源于牛客网的一道选择题: JAVA语言的下面几种数组复制方法中,哪个效率最高? ...
- java数组简单介绍以及其方法
小谈一下java数组 数组是存放数据的容器,有两个特点:元素类型唯一,长度固定. 一维数组声明:类型[] 数组名;类型 数组名[];推荐用前一种. 多维数组声明同样是以上要求. 在数组创建时,要注意一 ...
- java 数组 反射_java数组的反射
java数组的反射,有一个JAVA API类可以运用:java.lang.reflect.Array 具体应用: 1:判断一个对象是否是数组: int arr[] = {1,2,3}; Class c ...
- java 2维数据便利_计算机等级考试二级java数组辅导
数组(array)是相同类型变量的集合,可以使用共同的名字引用它.数组可被定义为任何类型,可以是一维或多维.数组中的一个特别要素是通过下标来访问它.数组提供了一种将有联系的信息分组的便利方法. 注意: ...
- (二十六)、Java数组在内存中如何存放与分配
Java中有两种类型的数组: 基本数据类型数组: 对象数组: 当一个对象使用关键字"new"创建时,会在堆上分配内存空间,然后返回对象的引用,这对数组来说是一样的,因为数组也是一个 ...
- (PASS)JAVA数组去重 三种方法 (不用集合)
第一种方法(只学到数组的看): 定义一个新的数组长度和旧数组的长度一样,存储除去重复数据的旧数组的数据和0, package demo01;import java.sql.Array; import ...
最新文章
- 关于Session_End()运行机制的一些细节!
- 阿里的财报,释放了什么信号?
- 命令行下mysql新建用户及分配权限
- java 获取http地址_java如何获取当前时间,java如何获取ip地址
- poj 1776 Task Sequences
- fastdfs的tracker启动之后一直选举_Elasticsearch选举流程详解
- envi 面向对象遥感图像分类
- 桂电管理科学可以转计算机,去年调到桂电计算机的感言,希望对各研友有帮助...
- 极客学院30天免费vip
- 【算法】什么是OJ系统?
- 哪吒之魔童降世视听语言影评_动画电影《哪吒之魔童降世》艺术语言分析
- MySQL使用group by分组查询每组最新的一笔数据
- 流体渐变_最新的10种Fluid Colors流体渐变壁纸制作方法
- TensorFlow中用深度学习修复图像
- Material doesn‘t have a texture property ‘_MainTex
- JavaSwing_3.1: JPanel(面板)
- “花书” 《深度学习》经验法则--中文
- 知乎实时数据(问题-以及答案)-语料集
- 微信小程序蓝牙BLE开发——写入一串16进制数据,低字节在前(五)
- 视频教程-JavaScript从入门到精通2016版教学视频-JavaScript