1

我实际上看不到Java如何管理对象的引用传递。我揭露这种情况是为了说明我的疑问。

public class Clase {


    public void metodo (int i, Integer objeto) {

        i++;
        objeto++;
    }
}

public class Main {

    public static void main(String[] args) {

        int         i = 5;
        Integer     object = new Integer(8);

        System.out.println(i);
        System.out.println(object);

        new Clase().metodo(i, object);

        System.out.println(i);
        System.out.println(object);


    }

}

我要打印的只是:

5
8
5
8

所以,只要我在方法中接收到一个基元和一个对象,对象不应该也从方法中改变吗?

4

1 回答 1

3

您使用的示例对象 ( Integer) 是不可变对象(与 相同String)。尝试使用非不可变对象的相同示例,您将得到预期的答案。

于 2013-09-30T04:23:40.270 回答