【发布时间】:2013-12-31 02:07:43
【问题描述】:
如果有人可以帮助我理解以下问题:
据我了解,double 是 Java 中的原始数据类型,Double 是不可变类。
每个参数都是按值传递的。如果是原始类型(int、double、byte),那么就是传递的实际值;如果它是一个对象类型,那么它就是被复制的那个对象的地址。
如果是这样,为什么这个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);
}
}
【问题讨论】:
-
“如果是对象类型” 关键是没有“对象类型”这样的东西。 Java 中唯一的类型是原始类型和引用类型。
标签: java parameters pass-by-reference primitive-types