在Java中,允许将一个数组变量拷贝给另一个数组变量。但是要注意,拷贝的是数组的引用,而不是直接把数据拷贝,也就是拷贝之后,两个变量将会引用同一个数组。

int[] array1 = array2;
array1[3] = 15;

通过上面语句赋值之后,array2[5]的值也是15.

下面是数组拷贝的示例图:


另一种情况就是,如果想要把一个数组的所有值拷贝到另一个新的数组中,就要使用Arrays类的copyOf方法完成。

int[] array1 = Arrays.copyOf(array2, array2.length);

方法copyOf的第二个参数array2.length是新数组的长度,这个方法通常用来增加数组的大小:

array = Arrays.copyOf(array, array.length);

如果数组元素是数值型,那么多余的元素会被赋值为0,;如果是boolean类型,赋值为false;相反的,如果数组的长度小于原始数组的长度,只拷贝最前面的数组元素。

注意:Java数组和C++数组在堆栈上有很大的不同,基本和分配在堆上的数组指针一样,例如:

int[] a = new int[100];//java

不同于

int a[100];//c++

等同于

int* a = new int[100];

Java中的[]被预定义为检查数组边界,并且没有指针运算,所以不能通过a加1等到数组的下一个元素。

Java核心技术--数组拷贝相关推荐

  1. java字符串数组拷贝函数_java 数组的拷贝 对象数组的拷贝 System.arraycopy函数

    /* java 数组的操作   System类的arraycopy静态函数用于数组拷贝   数组是不能越界的 对象数组的复制实际上是复制的引用的拷贝  也就是对象的地址 */ class Point ...

  2. 【Java】数组拷贝的四种方法

    四种方法 System.arraycopy() 这是一个native的方法,也是对大数组最高效的方法. Arrays.copyOf() 源码如下: public static <T> T[ ...

  3. 关于java数组拷贝的性能

    java 提供的System.arrayCopy()方法比自己写的数组copy要快. 查看其源代码: public static native void arraycopy(Object src,   ...

  4. 【韩老师零基础30天学会Java 09】Math Arrays 数组拷贝 自然排序 System BigDecimal 银行家算法舍入 日期类LocalDateTime转换 String翻转

    Math abs绝对值 pow求幂 ceil向上取整 floor向下取整 round四舍五入 sqrt求开方 random求随机数 思考: 请写出获取a-b之间的一个随机整数,a,b均为整数?2-7 ...

  5. Java核心技术笔记 语言基础

    <Java核心技术 卷Ⅰ> 第3章 Java 的基本程序设计结构 一些规则 类命名:CamelCase 驼峰命名法,以及必须是字母开头,后面跟字母和数字的任意组合: 源代码文件名:必须与公 ...

  6. Java核心技术第一周学习总结

    第三章:Java的基本程序设计结构 一.基本数据类型 列举 byte(字节型).short(短整型).int(整型).long(长整型).float(单精度浮点型).double(双精度浮点型).bo ...

  7. java核心技术卷I 第1-3章 笔记

    java核心技术卷I 第1-3章 本书将详细介绍下列内容: ● 面向对象程序设计 ● 反射与代理 ● 接口与内部类 ● 异常处理 ● 泛型程序设计 ● 集合框架 ● 事件监听器模型 ● 使用Swing ...

  8. JAVA核心技术,卷1

    JAVA 核心技术 第三章 java的基本程序设计结构 文章目录 JAVA 核心技术 第三章 java的基本程序设计结构 前言 一.注释 二.数据类型 1.整型 2.浮点类型 3.char类型 4.b ...

  9. 《Java核心技术 卷Ⅰ》读书笔记一

    Java核心技术·卷 I(原书第10版) 作者: [美] 凯.S.霍斯特曼(Cay S. Horstmann) 出版社: 机械工业出版社 原作名: Core Java Volume I - Funda ...

最新文章

  1. IE8 能否再创辉煌?
  2. hihocoder-Week243-hiho字符串
  3. 计算机应用等级考试1,计算机等级考试一级试题
  4. C#LeetCode刷题之#350-两个数组的交集 II(Intersection of Two Arrays II)
  5. python中os模块教程_python os模块功能和方法总结
  6. d3 和echart_D3.js与echart.js的应用场景
  7. iPad 2硬件评测:从CPU/GPU性能说开去…
  8. UML类图几种关系的总结,泛化 = 实现 组合 聚合 关联 依赖
  9. qt文件怎么设置全局变量_QT编程之——使用全局变量
  10. python植物大战僵尸代码
  11. 【工具类】java数字金额转换成大写
  12. 不限速的免费下载神器,牛逼!
  13. 手机上html满屏飘爱心代码,微信满屏爱心怎么弄?微信满屏爱心特效方法步骤...
  14. 中国科学院大学2015年数学分析高等代数考研试题
  15. 阿里云商标注册查询入口(支持图形检索/45分类注册风险)
  16. Android开发笔记(一百七十三)给安装包APK文件瘦身
  17. c语言3x3矩阵转置 数组指针 接口(int(※p)[3],int n)
  18. 微信的优缺点以及发展史
  19. NYOJ-20 吝啬的国度 AC
  20. 解决:win10下修改mac地址的方法

热门文章

  1. 关于VM一启动虚拟机电脑就重启或蓝屏的几个解决方法
  2. PHPChina留言板实例
  3. POJ 3616 奶牛挤奶
  4. MySQL函数用法之FORMAT
  5. 权重设计:客观赋权法的说明(熵权法/变异系数法/CRCIII法/TOPSIS法)
  6. 苹果云服务icloud_苹果手机通讯录没了怎么恢复?这3种找回方式有点意思
  7. 关于SBAS-InSAR中数据裁剪的问题
  8. python编写arcgis脚本教程_面向ArcGIS的Python脚本编程
  9. 4G技术哪家强?说清楚FDD和TDD之间的事
  10. 深入理解指针数组、数组指针、函数指针、函数指针数组、指向函数指针数组的指针