Java学习-值传递

public class TestTransfer {
    //定义一个swap方法
    public static void swap(int a , int b){
        /*
            参数列表中的int a 和int b 与主方法中的不同 注意:变量的作用范围 只在其声明语句所在的{}中有效
        */

        int tmp = a;    //在内存中开辟一块名字为tem,类型为int的地址空间,
                        //找到内存地址名字为a的地址空间,复制其值到临时空间,将这个值写入tem

        a = b;          //在内存中找到名字为a的地址空间和名字为b的地址空间,
                        //将名字为b的地址空间的值复制到临时空间,然后写入a,a之前的值被覆盖掉
        b = tmp;        //在内存中找到名字为b和名字为tmp的地址空间,复制tmp中的值到临时空间,
                        //然后写入b,b之前的值被覆盖掉。
                        //这样就实现了 a b 的值互换

        System.out.println("swap方法里,a的值是" + a + ";b的值是" + b); // 9,6
    }

    public static void main(String[] args) {

        int a = 6;      //在内存中开辟一块名字为a类型为int的地址空间,并将6写入(初始化赋值)
        int b = 9;      //在内存中开辟一块名字为b类型为int的地址空间,并将9写入(初始化赋值)
        swap(a , b);    //调用swap方法 并将 a,b传入 因为是值进行传递,传递的是copy
                        //找见名字为a和名字为b的地址空间,并将其中的值复制到临时空间,然后传递给swap函数
                        //因为传参传的是copy版本,所以其实a,b的值没有改变
        System.out.println("交换结束后,变量a的值是" + a + ";变量b的值是" + b); //6,9
    }  
}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值