Java核心技术--数组拷贝
在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核心技术--数组拷贝相关推荐
- java字符串数组拷贝函数_java 数组的拷贝 对象数组的拷贝 System.arraycopy函数
/* java 数组的操作 System类的arraycopy静态函数用于数组拷贝 数组是不能越界的 对象数组的复制实际上是复制的引用的拷贝 也就是对象的地址 */ class Point ...
- 【Java】数组拷贝的四种方法
四种方法 System.arraycopy() 这是一个native的方法,也是对大数组最高效的方法. Arrays.copyOf() 源码如下: public static <T> T[ ...
- 关于java数组拷贝的性能
java 提供的System.arrayCopy()方法比自己写的数组copy要快. 查看其源代码: public static native void arraycopy(Object src, ...
- 【韩老师零基础30天学会Java 09】Math Arrays 数组拷贝 自然排序 System BigDecimal 银行家算法舍入 日期类LocalDateTime转换 String翻转
Math abs绝对值 pow求幂 ceil向上取整 floor向下取整 round四舍五入 sqrt求开方 random求随机数 思考: 请写出获取a-b之间的一个随机整数,a,b均为整数?2-7 ...
- Java核心技术笔记 语言基础
<Java核心技术 卷Ⅰ> 第3章 Java 的基本程序设计结构 一些规则 类命名:CamelCase 驼峰命名法,以及必须是字母开头,后面跟字母和数字的任意组合: 源代码文件名:必须与公 ...
- Java核心技术第一周学习总结
第三章:Java的基本程序设计结构 一.基本数据类型 列举 byte(字节型).short(短整型).int(整型).long(长整型).float(单精度浮点型).double(双精度浮点型).bo ...
- java核心技术卷I 第1-3章 笔记
java核心技术卷I 第1-3章 本书将详细介绍下列内容: ● 面向对象程序设计 ● 反射与代理 ● 接口与内部类 ● 异常处理 ● 泛型程序设计 ● 集合框架 ● 事件监听器模型 ● 使用Swing ...
- JAVA核心技术,卷1
JAVA 核心技术 第三章 java的基本程序设计结构 文章目录 JAVA 核心技术 第三章 java的基本程序设计结构 前言 一.注释 二.数据类型 1.整型 2.浮点类型 3.char类型 4.b ...
- 《Java核心技术 卷Ⅰ》读书笔记一
Java核心技术·卷 I(原书第10版) 作者: [美] 凯.S.霍斯特曼(Cay S. Horstmann) 出版社: 机械工业出版社 原作名: Core Java Volume I - Funda ...
最新文章
- IE8 能否再创辉煌?
- hihocoder-Week243-hiho字符串
- 计算机应用等级考试1,计算机等级考试一级试题
- C#LeetCode刷题之#350-两个数组的交集 II(Intersection of Two Arrays II)
- python中os模块教程_python os模块功能和方法总结
- d3 和echart_D3.js与echart.js的应用场景
- iPad 2硬件评测:从CPU/GPU性能说开去…
- UML类图几种关系的总结,泛化 = 实现 组合 聚合 关联 依赖
- qt文件怎么设置全局变量_QT编程之——使用全局变量
- python植物大战僵尸代码
- 【工具类】java数字金额转换成大写
- 不限速的免费下载神器,牛逼!
- 手机上html满屏飘爱心代码,微信满屏爱心怎么弄?微信满屏爱心特效方法步骤...
- 中国科学院大学2015年数学分析高等代数考研试题
- 阿里云商标注册查询入口(支持图形检索/45分类注册风险)
- Android开发笔记(一百七十三)给安装包APK文件瘦身
- c语言3x3矩阵转置 数组指针 接口(int(※p)[3],int n)
- 微信的优缺点以及发展史
- NYOJ-20 吝啬的国度 AC
- 解决:win10下修改mac地址的方法