Java数组的赋值机制

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

数组的两种赋值的方式

引用传递,赋的是地址

  1. 数组的值是放在JVM的堆里,当定义一个数组时会在JVM里的栈中,放置堆的地址,来指向JVM对应的 堆 。
  2. 在对数组进行赋值的时候,默认情况下是引用传递,即把堆的地址给新的数组,让新数组指向该堆,其实使用的内存空间地址都是同于一个。
  3. 在对其中任何一个数组做修改的时候,另一个数组的值也会改变。
  4. 可以类比基本数据类型的赋值方式。
    一维数组内存 存在形式浅画一下
    二维数组内存存在形式
    在这里插入图片描述

值传递

数组的传递就需要按数组下标进行赋值,并创建一个新的数组空间

//数组 arr1
int[] arr1 = {1,2,3};
//数组arr2
int[] arr2 = new int[arr1.length];
//遍历 arr1 ,把每个元素拷贝到 arr2 对应的元素位置
for (int i = 0 ; i < arr1.length ; i ++){arr2[i] = arr1[i]; 
}

这样对数组 arr2 进行修改就不会影响 arr1 的值了。

数组的添加/扩容

看一下这个代码,可以对数组有跟进一步的了解。

  1. 原始数组使用静态分配 int[] arr = {1,2,3}
  2. 增加的元素 4,直接放在数组的最后 arr = {1,2,3,4}
  3. 用户可以通过如下方法来决定是否继续添加,添加成功,是否继续?y/n
public static void main(String[] args) {int[] arr = {1, 2, 3};do {//每次都创建一个新的数组空间,长度是之前数组长+1int[] arrNew = new int[arr.length + 1] ;System.out.println("请输入要添加的整数");Scanner scanner = new Scanner(System.in);int add = scanner.nextInt();arrNew[arrNew.length -1] = add ;//把原数组赋值给新数组for (int i = 0 ; i < arr.length ; i ++){arrNew[i] = arr[i] ;}//把新数组的地址给原数组,这里是引用传递arr = arrNew ;System.out.println("新数组的元素是");for (int i = 0 ; i < arr.length ; i ++){System.out.print( arr[i]);}System.out.println('\n');System.out.println("是否继续添加 'y/n' ");String next = scanner.next();if (next.charAt(0) == 'n')break;} while (2>1) ;}

感谢观看


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

相关文章

Java二维数组赋值

Java二维数组是指由多个一维数组组成的数组结构。它可以看作是一个表格&#xff0c;其中行表示数组中的第一个维度&#xff0c;列表示第二个维度。 可以使用两个方括号&#xff08;[ ] [ ]&#xff09;来声明和访问Java二维数组中的元素。 例如&#xff0c;以下代码声明了一个包…

java数组赋值_java中给数组赋值的方法

1、数组操作中&#xff0c;可以使用等于()赋值 注意&#xff1a;此时新数组只是指向原数组的存储空间&#xff0c;并没有重新申请新的空间。 实例&#xff1a;public class ArrayTest{ public static void main(String args[]){ // 1 int[] anew int[4]; a[0]1; a[1]2; a[2]3; …

Java数组变量赋值

一、问题&#xff1a;Java数组变量赋值是值传递还是址传递&#xff1f; 1.1 结论&#xff1a;java变量赋值是址传递 1.2 验证过程&#xff1a; ​ public class Test {public static void main(String[] args) {int[] arryA {1, 2, 3};int[] arryB {4, 5, 6, 7};arryA ar…

java 数组赋值_java中为数组赋值的方法

java中为数组赋值的方法 发布时间&#xff1a;2020-06-25 14:31:36 来源&#xff1a;亿速云 阅读&#xff1a;184 作者&#xff1a;Leah 这期内容当中小编将会给大家带来有关java中为数组赋值的方法&#xff0c;文章内容丰富且以专业的角度为大家分析和叙述&#xff0c;阅读完这…

【自学Java】Java语言数组赋值

Java语言数组赋值 Java数组赋值教程 在 Java 语言 中&#xff0c;给 数组 赋值&#xff0c;就相当于给每个位置上的对应的位置填充数据。 Java语言数组赋值详解 Java 中的数据赋值分为动态化赋值和静态化赋值两种赋值方式。动态化赋值指的是先定义数组&#xff0c;然后指定…

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

Java数组赋值&数组复制(拷贝) 数组赋值数组复制 1⃣️数组赋值 值传递(基本数据类型)与引用传递(数组)区别 值传递&#xff1a;基本数据类型赋值&#xff0c;赋给变量的值就是具体的数据&#xff0c;而且相互不受影响&#xff1b; int a 10; int b a; // b的变化不会影…

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…