2013-09-30 71 views
1

我实际上看不到如何 Java管理对象的引用传递。我揭露了这种情况来说明我的疑问。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

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

回答

3

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

+0

So Integer就像一个String,是最后一堂课,对吗? – diegoaguilar

+0

这是代码http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Integer.java – kosa