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

本文探讨了Java中方法参数的值传递机制,无论基本数据类型还是引用数据类型,都是传递副本。对于基本类型,传递数值;对于引用类型,传递对象地址。举例说明了在交换两个数的值时,直接传递值与传递引用的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
    }
}

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值