在JAVA中通过ref,double和Double传递参数

 小丸子派大星_127 发布于 2023-02-11 11:37

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

据我所知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);
    }
}

Fortega.. 6

它是通过值传递的对象的引用.在该方法中,您更改了引用,因此变量指向其他内容.方法中的(引用)原始对象不会更改.setNewValuechangeMevaluemain

另请参阅Java"传递引用"或"传值"吗?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有