【问题标题】:Confused by how "pass in by value" works [duplicate]对“按值传递”的工作方式感到困惑[重复]
【发布时间】:2016-06-25 04:56:02
【问题描述】:

我是 Java 新手,对“按值传递”的工作原理感到困惑。

int[] a;

public Constructor(int[] anArrayOfInt){ 
    a = anArrayOfInt;
}  

变量a 是否指向传递给构造函数的对象?对变量a 的更改是否反映在传递给构造函数的对象中?

【问题讨论】:

  • "对变量 a 的更改是否反映在传递给构造函数的对象中?" - 应该很容易自己检查

标签: java reference arguments


【解决方案1】:

变量 a 是否指向传递给构造函数的对象?

答案是肯定的。

对变量 a 的更改是否反映在传递给构造函数的对象中?

答案是肯定的。

因为在java中,参数是按值传递的。当您将对象传递给方法时,实际上,您传递的是对象的引用。

【讨论】:

  • 这是我有点困惑的地方,如果java按值传入,它不应该创建传入对象的副本(与原始传入对象不同)并分配复制对象的变量'a'?很抱歉问了这样一个简单的问题,但我对此感到很困惑
  • @TonyStark 不,它会复制引用,或者在原语(intlongboolean 等)的情况下复制值。
猜你喜欢
  • 1970-01-01
  • 2012-08-24
  • 2019-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多