首页 > 解决方案 > 调用函数会更新数组吗?

问题描述

如果我将一个数组发送到某个函数,例如:

public void arrayManipulate(Someclass [] arr){
arr[0] = 2
}

例如(可以说它是整数数组,即使我写了一些类)

Someclass [] arr = new Someclass[15]
this.arrayManipulate(arr);
System.out.print(arr[0]);

它会打印什么?0 作为数组中的 deadult 值,或 2(我想知道调用该函数是否会更新数组,或者我应该在该函数中返回数组并执行 arr = this.arrayManipulate(arr))

在此先感谢乔治

标签: javaarrays

解决方案


如果要编译您的代码,并且在这两个地方都将数组声明为 int[],那么答案将是:

是的,它将更新数组。虽然arr如果在方法中重新分配对象不会改变arrayManipulate,但修改其中的属性/元素对调用者来说是可见的,因为更新的对象是相同的。

所以要打印的数字是2


推荐阅读