gpt4 book ai didi

java - JAVA中通过ref、double、Double传递参数

转载 作者:行者123 更新时间:2023-12-01 08:07:21 25 4
gpt4 key购买 nike

如果有人可以帮助我理解以下问题:

据我了解,double是Java中的原始数据类型,Double是不可变类。每个参数都是按值传递的。如果是原始类型(intdoublebyte),则为实际传递的值;如果它是对象类型,则复制的是该对象的地址。

如果是这样,为什么这个 Double 类型的参数没有改变?

...
public static void main(String[] args) {
Double value = new Double(0);

SomeObj so = new SomeObj();
so.setNewValue(value);

System.out.println(value);
}
...

public class SomeObj {
public void setNewValue(Double changeMe)
{
changeMe = new Double(10.0);
}
}

最佳答案

它是对按值传递的对象的引用。在 setNewValue 方法中,您更改了引用,因此 changeMe 变量指向其他内容。 main 方法中的(对)原始 value 对象的引用不会更改。

另请参阅Is Java "pass-by-reference" or "pass-by-value"?

关于java - JAVA中通过ref、double、Double传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20547305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com