public class Tester{
public static void main(String[] args){
Integer var1=new Integer(1);
Integer var2=var1;
doSomething(var2);
System.out.print(var1.intValue());
System.out.print(var1==var2);
}
public static void doSomething(Integer integer){
integer=new Integer(2);
}
}
/**
*结果
*1true
*/
误区:只要是引用传递,对引用的修改直接影响着原对象
修正:只有对引用对象的内部做了修改,才会影响原对象,如果直接将引用修改了,则对原对象没有影响,唯一的影响就是:这个被修改的引用,现在不是原来对象的引用,而是新对象的引用。引用传递指的是传递的时候,传递的是对象的引用。如果对引用的内部成员进行操作,则会直接影响到原对象,但是如果直接把此引用指向了其他对象(尽管这个对象的属性与源对象不同),那对不起,这个引用从此以后,便与之前的对象没有任何关系,当前代表的仅仅是新指向的对象,函数执行结束后,不会改变原对象的引用和属性的值