<Java>Java数组的深拷贝与浅拷贝
来源:互联网 发布:制作拜年视频软件 编辑:程序博客网 时间:2024/04/30 13:45
1.Java数组深拷贝,也就是引用传递,影响原来的值,可以直接进行赋值:
int arraySource[] = {1,2,3};
int length = arraySource.length;
int arrayDest[] = new int[length];
arrayDest = arraySource;
对arrayDest的操作影响arraySource的值。
2.Java数组浅拷贝,值传递,不影响原来的值:
system.arrayCopy(Object src,int srcPos,Object dest,int destPos,int length);
system.arrayCopy(arraySource,0,arrayDest,0,length);
对arrayDest的操作不影响arraySource的值。
另有一种clone方法,未曾研究。
栗子
public class FartherJava { public FartherJava() {buf =new short[3];for(short i = 0;i<3;i++){buf[i] = i;} private short[] buf;public short[] retArray(){return buf;}public int getArrayLength(){return buf.length;}public void printArray(){System.out.println();System.out.println("original array:");for (short i : buf) {System.out.print(i);}}public static void main(String args[]) {FartherJava m = new FartherJava();short[] getArray = new short[10];getArray = m.retArray();int len = m.getArrayLength();getArray[0] = 4;System.out.println("getArray:");for(short s : getArray) {System.out.print(s);}m.printArray();System.out.println();short[] getAy = new short[len];System.arraycopy(m.retArray(), 0, getAy, 0, 3);getAy[0] = 3;System.out.println("getAy:");for (short s : getAy) {System.out.print(s);}m.printArray();}}
输出:
getArray:
412
original array:
412
getAy:
312
original array:
412
0 0
- <Java>Java数组的深拷贝与浅拷贝
- Java 数组 浅拷贝与深拷贝
- Java 数组 浅拷贝与深拷贝
- java的深拷贝与浅拷贝
- Java的浅拷贝与深拷贝
- java的深拷贝与浅拷贝
- java的深拷贝与浅拷贝
- java的浅拷贝与深拷贝
- Java的深拷贝与浅拷贝
- java的深拷贝与浅拷贝
- JAVA的深拷贝与浅拷贝
- java拷贝数组(深拷贝)
- Java中深拷贝与浅拷贝
- JAVA中深拷贝与浅拷贝
- java中深拷贝与浅拷贝。
- Java深拷贝与浅拷贝原理
- java中的深拷贝与浅拷贝
- Java 深拷贝与浅拷贝
- Shell脚本之awk
- 冒泡算法的时间复杂度问题
- effective c++条款10-12(operator=(重载返回类型、自我赋值和深层复制))整理
- 关于ftp用户连接时出现500 OOPS问题
- LDD3 中 awk 语句的解释
- <Java>Java数组的深拷贝与浅拷贝
- 软件工程3——第四章 迭代一总结及感想
- Spark - 大数据Big Data处理框架
- 基于pythonSimpleHTTPServer的d3js (bubble_cloud-gh-pages)
- MySQL图形工具 MySQL GUI Tools的安装使用方法
- ruby sinatra
- Shell脚本之sed
- ffmpeg转换和显示yuv,rgb等原始图像数据
- IT增值服务-客户案例(三):合肥薪火科技,Java和P2P网络借贷系统开发指导