Java数组赋值数组复制(拷贝)

article/2025/11/9 0:45:45

Java数组赋值&数组复制(拷贝)

  • 数组赋值
  • 数组复制

1⃣️数组赋值

值传递(基本数据类型)与引用传递(数组)区别

  1. 值传递基本数据类型赋值,赋给变量的值就是具体的数据,而且相互不受影响;

    int a = 10;
    int b = a;
    // b的变化不会影响a
    b =6;
    System.out.println("a= "+ a);// a = 10
    System.out.println("b= "+ b);// b = 6
    
  2. 引用传递:数组赋值时,默认情况下使用的是引用传递,即赋值的是地址

    int arr1 [] = {1,2,3};
    int arr2 [] = arr1;//把arr1(的地址)赋值给arr2
    // arr2的变化会影响arr1
    arr2[0] = 10;
    System.out.println("arr1: "+ Arrays.toString(arr1));
    // arr1:[10, 2, 3]  
    System.out.println("arr2: "+ Arrays.toString(arr2));
    // arr2:[10, 2, 3]  
    

引用传递分析 :

从底层JVM内存机制分析值传递与引用传递区别

在这里插入图片描述

  1. 值传递,基本数据类型赋值,直接在栈中将 值 赋给 变量。
  2. 引用传递:栈中存储的是数组名以及在堆中的存储地址。当把数组arr1 赋值给arr2 时,实际是将arr1 指向的堆中的地址赋值给了arr2,此时arr1 和arr2 指向堆中的同一存储空间。因此当改变arr2中某个元素时,arr1中元素的也会发生对应变化。

2⃣️数组复制

for循环复制

//将 int[] arr1 = {10,20,30}; 拷贝到 arr2 数组, 
//要求数据存储空间是独立的.
int[] arr1 = {10,20,30}; 
//创建一个新的数组 arr2,开辟新的数据空间。大小为 arr1.length; 
int[] arr2 = new int[arr1.length]; 
//遍历 arr1 ,把每个元素拷贝到 arr2 对应的元素位置 
for(int i = 0; i < arr1.length; i++){ arr2[i] = arr1[i];
}
//修改 arr2, 不会对 arr1 有影响. 
arr2[0] = 100;
//输出 arr1
System.out.println("arr1: "+ Arrays.toString(arr1));//10,20,30

其它复制方法

其它数组复制方式还有clone()、System.arraycopy()、Arrays.copyof(),具体使用方法可参考链接🔗 https://blog.csdn.net/weixin_42220532/article/details/84200634

⚠️⚠️⚠️ 复制数组时,还想注意数组中元素类型(基本数据or引用类型)以及数组维度(例多维数组);


http://chatgpt.dhexx.cn/article/uXIe2DXy.shtml

相关文章

LATEX换行

LATEX 换行 \ newpage \maketitle 表示 begin{document} 前面的标题在这里显示 begin{document} 中的文本才显示

latex换行后(\\)如何继续缩进两格?

LaTeX 中正常换行不要使用 \&#xff0c;直接回bai车两下&#xff0c;即du在两段中间空一行&#xff0c;这样就会自动另zhi起一段并且缩dao进了。 也可以在段落前面加上 \par &#xff0c;例如 \par 第一段。\par 第二段。 就可以将它们分段了&#xff0c;如果想要在强制换行…

Latex: 表格中 自动换行居中

1、在导言区添加宏包&#xff1a; \usepackage{makecell}2、环境&#xff1a;tabular 命令&#xff1a; \makecell[居中情况]{第1行内容 \\ 第2行内容 \\ 第3行内容 ...} \makecell [c]{ResNet101\\ (11.7M)}参数说明&#xff1a; [c]是水平居中&#xff0c;[l]水平左居中&am…

.tex文件中通过空行实现LaTeX换行输出

【LaTeX换行输出代码示例】 \documentclass{article} \begin{document}Happy \TeX ing. Hello \LaTeX.Happy \TeX ing.Hello \LaTeX. \end{document} 【输出结果】

latex multirow 内换行

latex 多行合并要用到 \multirow&#xff0c; 若合并后的内容还想换行&#xff0c;就要用到其他命令了&#xff1a; 方法一&#xff1a; 使用 \shortstack 举例&#xff1a; \usepackage{booktabs} \usepackage{multirow} \begin{table}[!ht] \begin{tabular}{clrrrrrr} \…

Latex公式换行与对齐

Latex公式换行与对齐 1、引用amsmath包&#xff1a; \usepackage{amsmath}2、公式中用aligned&#xff1a; \begin{equation} \begin{aligned} ...... \end{aligned} \end{equation}或者直接用align&#xff1a; \begin{align} ...... \end{align}3、换行时用“\”换行符 …

Latex长公式换行符号对齐

实现如图效果&#xff1a; Latex如下&#xff1a; \begin{equation} \begin{cases} \begin{aligned} x&12345 \\ &\quad 67 \\ y&123 \\ z&92 \end{aligned} \end{cases} \end{equation}\begin{equation} ... \end{equation} 创建公式环境\begin{cases} ... \…

LaTex公式换行以及括号匹配问题

效果&#xff1a; 注意&#xff1a;换行之后&#xff0c;下一行有几个需要匹配的括号&#xff0c;就应该有几个相应的\left.和\right. 上面的写法&#xff0c;有可能左右括号大小不同&#xff0c;可以使用下面写法&#xff1a; 效果&#xff1a;

LaTeX 段落和换行

LaTeX 段落和换行 目录 LaTeX 段落和换行第一个例子开始一个新段落段落对齐flushleft and flushright environments\raggedright和\raggedleft 段落缩进缩进相关命令注意事项 本文介绍了基本的 LaTeX 段落格式&#xff0c;包括如何更改文本对齐方式。可以在文章文本对齐和段落格…

latex 公式如何换行

参考latex 公式如何换行 - 云社区 - 腾讯云 1、如图所示&#xff0c;我们先写个长公式。 2、可以看到&#xff0c;公式没有自动换行&#xff0c;而是跨过了一栏。 3、如图所示&#xff0c;在公式上下两端加上split。同时使用\\指明换行的位置。 4、如图所示&#xff0c;公式实…

Latex 如何换行,分段,换页

Latex 如何换行&#xff0c;分段&#xff0c;换页 1.换行&#xff08;三个方法&#xff09; \newline 另起一段是空一行 \ 2.分段 \par 3.换页 \newpage 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持&#xff0c;除了标准的Markdown编辑器功能&#xff0c;…

LaTeX 换行、换页、空白空间

原  文&#xff1a;Line breaks and blank spaces 译  者&#xff1a;Xovee 翻译时间&#xff1a;2021年8月19日 换行、换页、空白空间 一般来说&#xff0c;我们不推荐你改变默认的 LaTeX 文档结构。当然&#xff0c;我们有时候也有这个需求。所以&#xff0c;在本文中&…

LaTeX 换行

LaTeX换行的几种方法 方法一&#xff1a;输入 \\ 结果即只进行单纯换行&#xff0c;并无缩进 方法二&#xff1a;输入 \par 显示结果为自动换行加缩进 公式换行等号对齐 用\\ 进行换行&#xff0c;然后用& 可以对齐每行。 代码示例 \begin{equation*} %加*表示不对…

React 学习之父子组件传值

父组件可以通过props、原型方法向子组件通信&#xff0c;子组件可以通过回调函数、事件冒泡向父组件通信。 1. 父组件向子组件通信 父组件向子组件传值之props方法&#xff1a; 父组件 import React from react import Child from "../Child";function CounterHo…

Vue非父子组件传值

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、非父子组件传值二、事件总线2.$attrs / listenersVueX是笔者认为最稳定的非父子传值的方法&#xff0c;笔者也会单独写出文章详解 总结 前言 本节紧接这上…

vue2父子组件传值

1.父传子 父传子&#xff1a;主要是在父组件引入子组件&#xff0c;将要传值的值绑定指定的属性上如 然后在子组件用props接收即可在页面展示 1.父组件 <template><div class"home"><HelloWorld :msg title></HelloWorld></div> &l…

VUE父子组件传值(含实例)

vue父子组件通信 这里的movies数组和message字符串&#xff0c;相当于是在父组件中对要传给子组件的数据做赋值或者计算等操作。 1.父传给子&#xff08;在子组件中改数据&#xff09; 父组件&#xff1a; 1.在子组件上绑定数据arrData 2.在data()中给出定义&#xff08;注意…

vue3.0 父子组件传值问题

使用vue3.0时遇到父子传值的问题&#xff0c;顺便记录一下 问题背景&#xff1a; 如图所示&#xff0c;编辑按钮是父组件的部分&#xff0c;下面的表单是子组件 需要&#xff1a;按下父组件中的编辑按钮时&#xff0c;子组件的表单需要变成可编辑状态&#xff0c;在可编辑状…

微信小程序:父子组件传值

在微信小程序里&#xff0c;父组件可以向子组件传值&#xff0c;子组件也可以向父组件传值&#xff0c;不过这两种传值方式不大相同&#xff0c;下面先简单介绍这两种传值的区别。 两者的区别 父组件向子组件传值&#xff0c;使用的是 属性绑定 的方法&#xff0c;并且只能传…

vue 实现父子组件传值和子父组件传值

先上一张图&#xff0c;vue 父子组件传值都用的图片。从张图入手了解如何传参。 一、父组件 1.引入子组件 import random from "./child-random-paper"; 2.注册子组件 components: {random,}, 3. 静态组件&#xff0c;循环体 <liv-for"(item, index) i…