java引用传递,值传递
2个interger的引用对象传给一个swap方法在方法内部进行交换
1.1 java中方法参数传值方式
java中方法传参数都是值传递的,只不过根据参数的类型是引用类型还是非引用类型
引用类型传递的是该类型的地址
非引用类型传递的是该变量的副本
1.2 Integer 源代码存在 一个int value变量中
1.3 可以通过反射变量来改private final 变量
package com.java.yj;
import java.lang.reflect.Field;
/**
* Created by yejian on 2018/7/9.
*/
public class MethodVarialble {
public static void main(String[] args) {
Integer i1=10;
Integer i2=20;
swap(i1,i2);
System.out.println("i1="+i1+" i2="+i2);
}
public static void swap(Integer i1, Integer i2) {
try {
Field field = Integer.class.getDeclaredField("value");
field.setAccessible(true);
//int temp = i1.intvalue(); //指向同一份内存地址
Integer temp = new Integer(i1.intValue());
field.set(i1,i2.intValue());
field.set(i2,temp);
} catch (Exception e) {
e.printStackTrace();
}
}
}