Tes*_*laS 0 java parameters pass-by-reference primitive-types
如果有人可以帮我理解以下问题:
据我所知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);
}
}
Run Code Online (Sandbox Code Playgroud)
它是通过值传递的对象的引用.在该方法中,您更改了引用,因此变量指向其他内容.方法中的(引用)原始对象不会更改.setNewValuechangeMevaluemain
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |