由基本数据类型构建的数组,如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 数组的克隆相关推荐

  1. java数组的clone方法_深入浅出,如何更彻底地理解Java数组的clone方法

    说在前面 在进入理解clone前,我们需要对"基本数据类型"和"引用数据类型"的存储模式有一个清晰的认识. 基本数据类型,变量的内容保存的是实际的值:引用数据类 ...

  2. java数组 序列化_程序猿的日常——Java基础之clone、序列化、字符串、数组

    其实Java还有很多其他的基础知识,在日常工作技术撕逼中也是经常被讨论的问题. 深克隆与浅克隆 在Java中创建对象有两种方式: 一种是new操作符,它创建了一个新的对象,并把对应的各个字段初始化成默 ...

  3. 【JAVA零基础入门系列】Day14 Java对象的克隆

    [JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...

  4. java 数组效率_java数组复制的四种方法效率对比

    有关数组的基础知识,有很多方面,比方说初始化,引用,遍历,以及一维数组和二维数组,今天我们先看看数组复制的有关内容. 来源于牛客网的一道选择题: JAVA语言的下面几种数组复制方法中,哪个效率最高? ...

  5. java数组简单介绍以及其方法

    小谈一下java数组 数组是存放数据的容器,有两个特点:元素类型唯一,长度固定. 一维数组声明:类型[] 数组名;类型 数组名[];推荐用前一种. 多维数组声明同样是以上要求. 在数组创建时,要注意一 ...

  6. java 数组 反射_java数组的反射

    java数组的反射,有一个JAVA API类可以运用:java.lang.reflect.Array 具体应用: 1:判断一个对象是否是数组: int arr[] = {1,2,3}; Class c ...

  7. java 2维数据便利_计算机等级考试二级java数组辅导

    数组(array)是相同类型变量的集合,可以使用共同的名字引用它.数组可被定义为任何类型,可以是一维或多维.数组中的一个特别要素是通过下标来访问它.数组提供了一种将有联系的信息分组的便利方法. 注意: ...

  8. (二十六)、Java数组在内存中如何存放与分配

    Java中有两种类型的数组: 基本数据类型数组: 对象数组: 当一个对象使用关键字"new"创建时,会在堆上分配内存空间,然后返回对象的引用,这对数组来说是一样的,因为数组也是一个 ...

  9. (PASS)JAVA数组去重 三种方法 (不用集合)

    第一种方法(只学到数组的看): 定义一个新的数组长度和旧数组的长度一样,存储除去重复数据的旧数组的数据和0, package demo01;import java.sql.Array; import ...

最新文章

  1. 关于Session_End()运行机制的一些细节!
  2. 阿里的财报,释放了什么信号?
  3. 命令行下mysql新建用户及分配权限
  4. java 获取http地址_java如何获取当前时间,java如何获取ip地址
  5. poj 1776 Task Sequences
  6. fastdfs的tracker启动之后一直选举_Elasticsearch选举流程详解
  7. envi 面向对象遥感图像分类
  8. 桂电管理科学可以转计算机,去年调到桂电计算机的感言,希望对各研友有帮助...
  9. 极客学院30天免费vip
  10. 【算法】什么是OJ系统?
  11. 哪吒之魔童降世视听语言影评_动画电影《哪吒之魔童降世》艺术语言分析
  12. MySQL使用group by分组查询每组最新的一笔数据
  13. 流体渐变_最新的10种Fluid Colors流体渐变壁纸制作方法
  14. TensorFlow中用深度学习修复图像
  15. Material doesn‘t have a texture property ‘_MainTex
  16. JavaSwing_3.1: JPanel(面板)
  17. “花书” 《深度学习》经验法则--中文
  18. 知乎实时数据(问题-以及答案)-语料集
  19. 微信小程序蓝牙BLE开发——写入一串16进制数据,低字节在前(五)
  20. 视频教程-JavaScript从入门到精通2016版教学视频-JavaScript

热门文章

  1. 【信息检索】信息检索系统实现
  2. 不会画建筑CAD图纸?建筑CAD设计全流程解析打包送给你!
  3. Bugku Web CTF-江湖魔头1
  4. 安装工程造价课程设计_电气安装工程造价 课程设计
  5. Java程序员烂大街了?!找工作的硬核实力竟然是这些!
  6. SDNUOJ 1213.金额的中文大写
  7. Android项目分包(按功能模块)
  8. qiime2 序列文件demux.qza转化成 单个样本fastq.gz
  9. Oracle 你真的会用ltrim/rtrim函数吗?
  10. C# 支付宝接口在线收款退款