Java如何在方法中操作数组元素

  一、对比两组ChangeIt代码的不同

class TestIt
{
    public static void main ( String[] args )
    {
        int[] myArray = {1, 2, 3, 4, 5};
        ChangeIt.doIt( myArray );
        for(int j=0; j<myArray.length; j++)
            System.out.print( myArray[j] + " " );
    }
}
class ChangeIt
{
    static void doIt( int[] z ) 
    {
        z = null ;
    }
}

class TestIt
{
    public static void main ( String[] args )
    {
        int[] myArray = {1, 2, 3, 4, 5};
        ChangeIt.doIt( myArray );
        for(int j=0; j<myArray.length; j++)
            System.out.print( myArray[j] + " " );
    }
}
class ChangeIt {
    static void doIt(int[] z) {
        z[0] = 10; // 修改数组的第一个元素
    }
}

一、什么是引用调用

  1. 引用与值

    在 Java 中,数组是对象,变量存储的是对该对象的引用。当你将数组传递给方法时,实际上是传递了该数组的引用。
  2. 局部变量的作用域

    当在 doIt 方法中执行 z = null; 时,只有局部变量 z 的引用被更改,使其指向 null。这并不会影响到外部的 myArray 变量,因为它仍然持有原始数组的引用。
  3. 原始数组保持不变

    因为 myArray 在 main 方法中依然引用着同一个数组对象,所以即使在 doIt 方法中将 z 设置为 null,原始数组的内容依旧保持不变。

二、在方法中修改数组的值

  1. 数组是对象

    在 Java 中,数组是对象。当你创建一个数组时,例如 int[] myArray = {1, 2, 3, 4, 5};myArray 变量持有的是对这个数组对象的引用。
  2. 传递数组

    当你将 myArray 作为参数传递给 doIt 方法时,实际上是把这个数组的引用传递给了 z。因此,z 和 myArray 指向同一个数组对象。
  3. 修改数组内容

    在 doIt 方法中,当你执行 z[0] = 10; 时,你并没有改变 z 的引用,而是直接访问并修改了数组中的第一个元素。这会影响到原始数组,因为 z 和 myArray 共享同一个数组对象。
  4. 方法调用后的结果

    当 doIt(myArray); 被调用后,myArray 的第一个元素被设置为 10,所以在调用后,myArray 的内容变为 {10, 2, 3, 4, 5}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值