数组的拷贝

数组的拷贝

浅拷贝

概念:数组的浅拷贝是指新数组保存的是原数组的内存地址,并没有拷贝真正的值,如果原数组的内容发生改变那么新数组的内容也会发生相应改变。

代码实现:

public class Test04{
	public static void main(String[] args){
		//原数组
		String[] arr = {"胡歌","彭于晏","陈冠希"};
		//新数组
		String[] newArr = arr;
		//修改原数组
		arr[1] = "谢霆锋";
		//遍历新数组
		for(String element : newArr){
			System.out.println(element);
		}
	}
}

结果:

在这里插入图片描述

内存分析

在这里插入图片描述

深拷贝

概念:深拷贝是指既会拷贝基本数据类型的值,也会针对实例对象的引用地址所指向的对象进行复制,复制一个完全一模一样的对象,新对象和老对象之间不共享任何内存。也就意味着对新对象的修改,不会影响老对象的值。深拷贝出来的对象,内部的类执行指向的不是同一个对象。

代码实现:

public class Test05{
	public static void main(String[] args){
		//原数组
		String[] arr = {"胡歌","彭于晏","陈冠希"};
		//新数组
		String[] newArr = new String[arr.length];
		//将原数组下标的元素赋值给新数组
		for(int i = 0;i<arr.length;i++){
			newArr[i] = arr[i];
		}
		//修改原数组
		arr[1] = "谢霆锋";
		//遍历新数组
		for(String element : newArr){
			System.out.println(element);
		}	
	}
}

结果:

在这里插入图片描述

内存分析

在这里插入图片描述

相关推荐

  1. 基本算法

    2024-05-02 20:54:01       57 阅读
  2. 数据输入

    2024-05-02 20:54:01       43 阅读
  3. c# 使用

    2024-05-02 20:54:01       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-02 20:54:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-02 20:54:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-02 20:54:01       82 阅读
  4. Python语言-面向对象

    2024-05-02 20:54:01       91 阅读

热门阅读

  1. http的url中的?与&

    2024-05-02 20:54:01       37 阅读
  2. 河南省工程系列建筑专业职称申报评审条件

    2024-05-02 20:54:01       33 阅读
  3. 五一假期——1

    2024-05-02 20:54:01       29 阅读
  4. 【数学】高斯消元

    2024-05-02 20:54:01       36 阅读
  5. 什么是 Python 中的 __pycache__ 文件夹?

    2024-05-02 20:54:01       27 阅读
  6. C#面:列举 ADO.NET 中的共享类和数据库特定类

    2024-05-02 20:54:01       28 阅读
  7. git常用命令总结

    2024-05-02 20:54:01       32 阅读