浅拷贝:

在堆内存中不会分配新的空间,而是增加一个引用变量和之前的引用指向相同的堆空间。

int[] a = {1,2,3,4,5};

int[]b = a;

public class Test {

    public static void main(String[] args) {

        //数组的浅拷贝,a,b两个引用指向同一个数组
int[] a = {1,2,3,4,5};
int[] b = a; for (int i = 0; i < b.length; i++) {
System.out.print(b[i] + " ");
} System.out.println();
}
}

深拷贝:

在堆内存中分配新空间,将之前的数组堆内存中的内容拷贝到新的空间中。

int[] a = {1,2,3,4,5};

int[] b = new int[5];

System.arraycopy(a, 0, b, 0, 5);

public class Test {

    public static void main(String[] args) {

        //数组的深拷贝,a,b两个引用指向同一个数组
int[] a = {1,2,3,4,5};
int[] b = new int[5]; /**
* System.arraycopy(src, srcPos, dest, destPos, length);
* src:源数组
* srcPos:源数组中拷贝的起始位置
* dest:目标数组
* destPos:目标数组中开始存放的位置
* length:拷贝的长度
*/
System.arraycopy(a, 0, b, 0, a.length); for (int i = 0; i < b.length; i++) {
System.out.print(b[i] + " ");
} System.out.println();
}
}

Java 数组的浅拷贝和深拷贝的更多相关文章

  1. 【转】JAVA中的浅拷贝和深拷贝

    原文网址:http://blog.bd17kaka.net/blog/2013/06/25/java-deep-copy/ JAVA中的浅拷贝和深拷贝(shallow copy and deep co ...

  2. java中的浅拷贝和深拷贝

    复制 将一个对象的引用复制给另一个对象,一共有三种方式.第一种方式是直接赋值,第二种方式是浅复制,第三种方式是深复制. 1.直接赋值 在Java中,A a1 = a2,这实际上复制的是引用,也就是说 ...

  3. js 数组的浅拷贝和深拷贝

    1.背景介绍 javascript分原始类型与引用类型.Array是引用类型,直接用"="号赋值的话,只是把源数组的地址(或叫指针)赋值给目的数组,指向的是同一个内存地址,其中一个 ...

  4. Java对象的浅拷贝和深拷贝&&String类型的赋值

    Java中的数据类型分为基本数据类型和引用数据类型.对于这两种数据类型,在进行赋值操作.方法传参或返回值时,会有值传递和引用(地址)传递的差别. 浅拷贝(Shallow Copy): ①对于数据类型是 ...

  5. java中的浅拷贝与深拷贝

    浅拷贝: package test; class Student implements Cloneable { private int number; public int getNumber() { ...

  6. java引用类型的浅拷贝与深拷贝理解

    1.浅拷贝 只会复制地址值,也就是同一个对象两个引用,只是复制了一个引用而已. 2.深拷贝 重新在堆里创建一个新对象给新引用,连同地址值也不一样. 首先要知道Object的clone()方法, pub ...

  7. 【Java】 Java中的浅拷贝和深拷贝

    先抛出结论: 浅拷贝是引用拷贝,A对象拷贝B以后,A对象和B对象指向同一块内存地址,改变A对象的属性值会触发B对象属性的改变,有安全风险 深拷贝是对象拷贝,A对象拷贝B以后,A对象和B对象指向不同的额 ...

  8. React之浅拷贝与深拷贝

    最近发现的一个bug让我从react框架角度重新复习了一遍浅拷贝与深拷贝. 浅拷贝,就是两个变量都是指向一个地址,改变了一个变量,那另一个变量也随之改变.这就是浅拷贝带来的副作用,两个变量会相互影响到 ...

  9. 全面聊聊JavaScript的浅拷贝和深拷贝

    一.背景      首先我们可以看下面这段简单的代码: var obj = {name:'程序猿',sex:'男'}; var arr = ['程序猿','程序媛']; var copyobj = o ...

随机推荐

  1. hadoop入门小知识点

    注意各个主机之间的通信 文件的复制 scp指令 scp /etc/profile acm03:/etc 所有历史版本: archive.apache.org hdfs://acm01:9000     ...

  2. PAT1063. Set Similarity (25)

    来自http://blog.csdn.net/tiantangrenjian/article/details/16868399 set_intersection 交集  set_union 并集  s ...

  3. QTableWidget 列排序

    connect(uirecord.tableWidget->horizontalHeader(),SIGNAL(sectionClicked(int)),this,SLOT(record_sor ...

  4. T-SQL RIGHT JOIN

    RIGHT JOIN外联接与LEFT JOIN相似.取得右表所有记录,并按过滤条件ON去取得左表的记录,取得这些记录,如遇上没有匹配的列使用NULL填充. 演示数据来源,两张表来自http://www ...

  5. LeetCode第[5]题(Java):Longest Palindromic Substring 标签:String、动态规划

    题目中文:求最长回文子串 题目难度:Medium 题目内容: Given a string s, find the longest palindromic substring in s. You ma ...

  6. bash遍历目录压缩文件

    #!/bin/bash function dir(){ ` do "/"$file ] then "/"$file else "/"$fil ...

  7. Firefox 下载、附加组件、Flash插件、缓存位置(附加Chrome下载和Opera下载)

    Firefox 下载的FTP页面: http://ftp.mozilla.org/pub/firefox/releases/ Firefox下载官方页面: https://www.mozilla.or ...

  8. SpringBoot_11_将springboot项目部署到外部tomcat上

    一.前言 二. 三.参考资料 如何将Spring Boot项目打包部署到外部Tomcat 2.SpringBoot 项目如何在tomcat容器中运行

  9. 使用ORC识别图片的文字

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  10. HAWQ取代传统数仓实践(八)——维度表技术之角色扮演维度

    单个物理维度可以被事实表多次引用,每个引用连接逻辑上存在差异的角色维度.例如,事实表可以有多个日期,每个日期通过外键引用不同的日期维度,原则上每个外键表示不同的日期维度视图,这样引用具有不同的含义.这 ...