Java - 这似乎是对我的引用

标签 java

<分区>

Possible Duplicate:
Is Java pass by reference?

因此请考虑以下两个示例及其各自的输出:

public class LooksLikePassByValue {

    public static void main(String[] args) {

        Integer num = 1;
        change(num);
        System.out.println(num);
    }

    public static void change(Integer num)
    {
        num = 2;
    }
}

输出:

1


  public class LooksLikePassByReference {

    public static void main(String[] args) {

        Properties properties = new Properties();
        properties.setProperty("url", "www.google.com");
        change(properties);
        System.out.println(properties.getProperty("url"));
    }

    public static void change(Properties properties2)
    {
        properties2.setProperty("url", "www.yahoo.com");
    }
}

输出:

www.yahoo.com

为什么会是 www.yahoo.com? 我觉得这不像是传递值。

最佳答案

引用 是按值传递的。但是新引用仍然指向相同 原始对象。所以你修改它。在您使用 Integer 的第一个示例中,您正在更改引用指向的对象。所以原来的没有修改。

关于Java - 这似乎是对我的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6987069/

相关文章:

java - 如何使用 jSTL c :set? 将 html 值分配给变量

java - Android 中的 SQLite OpenDatabase 问题

Java更精确的算术

java - Spring MVC 应用程序中用户之间的消息传递

java - 使用replaceAll()组合两个正则表达式

java - 为什么我不能使用 callUDF 方法?

java - 当我用Java中的Scanner类读取.txt文件时,如何只能读取字符串或整数

java - 如何访问在java中使用它的唯一类的私有(private)嵌套类对象

java - 具有重复键的映射行为

java - 我无法提取正确的 xpath ,可以帮助我