java - 调用函数会更新数组吗?
问题描述
如果我将一个数组发送到某个函数,例如:
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))
在此先感谢乔治
解决方案
如果要编译您的代码,并且在这两个地方都将数组声明为 int[],那么答案将是:
是的,它将更新数组。虽然arr
如果在方法中重新分配对象不会改变arrayManipulate
,但修改其中的属性/元素对调用者来说是可见的,因为更新的对象是相同的。
所以要打印的数字是2
推荐阅读
- python - 如何使用 pip 在 Python 3.7 / Windows 10 上安装 PyTorch
- html - 视频填充剩余空间,同时保持与 CSS 的比例
- python - 用引号和逗号解析逗号分隔的字符串
- node.js - nodejs 脚本的 JSON 变量
- c# - 如何处理列表中的特定元素
- c# - 获取 IEnumerable 的第一项并将其余项作为 IEnumerable 返回,仅迭代一次
- java - 如何在地图中使用已经制作的矢量?
- pact - Pact CDC 测试最佳实践
- html - Flex 工具栏环绕在左侧/右侧
- javascript - Mapbox 缩放到当前位置(Pokemon go like 缩放功能)