Java学习-值传递

来源:互联网 发布:海尔电视软件下载 编辑:程序博客网 时间:2024/06/06 05:04
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    }  }

这里写图片描述

2 0
原创粉丝点击