java--方法参数的值传递机制

java的值传递机制

java中方法的参数传递的方式只有一种:值传递,即将实际参数值的副本传入方法中,而参数本身不受影响
形参是基本数据类型,将实参基本数据类型变量的“数据值”传递给形参
形参是引用数据类型,将实参引用数据类型变量的“地址值”传递给形参

交换两个数的值
/*
java的值传递机制,交换两个数的值
 */
public class ValueTransferTest {
    
    

    public static void main(String[] args) {
    
    

        int m=10;
        int n=20;
        ValueTransferTest transferTest=new ValueTransferTest();
        transferTest.swap(m,n);
        System.out.println("m = "+m+", n= "+n);


    }

    public void swap(int m,int n){
    
    

        int temp=m;
        m=n;
        n=temp;
    }
}

这里使用基本数据类型,传递的是m和n的值的copy,而不是m和n本身,所以当方法执行完之后,方法的形参被销毁,而main方法里的m和n还是不变

交换两个数的值–传入引用
/**
 * 交换两个数的值,引用传递
 */
public class ValueTransferTest2 {
    
    

    public static void main(String[] args) {
    
    
        int[] data=new int[]{
    
    10,20};

        ValueTransferTest2 valueTransferTest2=new ValueTransferTest2();
        valueTransferTest2.swap(data);
        System.out.println("m = "+data[0]+",n = "+data[1]);

    }

    public void swap(int[] data){
    
    
        int temp=data[0];
        data[0]=data[1];
        data[1]=temp;
    }
}

引用类型,传入的是对象的地址,那么形参和实参同时指向同一个对象。

猜你喜欢

转载自blog.csdn.net/ljsykf/article/details/112856756
今日推荐