- public class Test1 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Integer i=1,j=2;
- swap(a,b);
- System.out.println(i+" j: "+j);
- }
- public static void swap(Integer a,Integer b){
- int temp=0;
- temp=a;
- a=b;
- b=temp;
- System.out.println(a+"b: "+b);
- }
- }
复制代码 上面例子中调用swap方法后,i与j的值并没有改变,这是因为实际参数i,j只是把值传递给了形式参数a,b,执行方法时形式参数a,b的值的改变不影响实际参数i和j的值,i和j的值在调用前后并没改变.这就是值传递。
值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值。
引用传递:也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值。
值传递的类型为基本数据类型,引用传递就是对象引用为参数。
除此之外,String在这方面的特点是也是属于值传递。
|