[英]Passing parametars by ref, double and Double in JAVA
如果有人可以帮助我了解以下问题:
据我了解, 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);
}
}
它是对按值传递的对象的引用 。 在setNewValue
方法中,您可以更改引用,因此changeMe
变量指向其他对象。 main
方法中的(对原始value
对象的引用)不变。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.