java中参数传递问题

来源:互联网 发布:php 断点续传 编辑:程序博客网 时间:2024/06/06 05:50

自我总结:

  1. 参数传递:

    • 基本类型:由于基本类型传递的是值,所以定义的值本身不会改变,并且在其他方法中或者运算中使用后不会为此而改变本身定义的值。
    • 引用数据类型:由于引用数据类型传递的是地址值,所以在以后的赋值或者修改时,会改变(覆盖)自己本身定义的值;
  2. 以下是代码解释与图解:

/*    思考题1:看程序写结果,然后分析为什么是这个样子的。并画图讲解。最后总结Java中参数传递规律。    Java中的参数传递问题:        基本类型:形式参数的改变对实际参数没有影响。        引用类型:形式参数的改变直接影响实际参数。*/class ArgsDemo {    public static void main(String[] args) {        int a = 10;        int b = 20;        System.out.println("a:"+a+",b:"+b); //a:10,b:20        change(a,b);        System.out.println("a:"+a+",b:"+b); //???   a:10,b:20        int[] arr = {1,2,3,4,5};         change(arr);        System.out.println(arr[1]); //???   4    }    public static void change(int a,int b) { //a=10,b=20        System.out.println("a:"+a+",b:"+b); //a:10,b:20        a = b;  //a=20        b = a + b; //b=40        System.out.println("a:"+a+",b:"+b); //a:20,b:40    }    public static void change(int[] arr) { //arr={1,2,3,4,5};        for(int x=0; x<arr.length; x++) {            if(arr[x]%2==0) {                arr[x]*=2;            }        }        //arr={1,4,3,8,5};    }}

请看图解:
3.java中只有值传递:
疑问:不是还有引用数据类型吗?
解答:地址值也是值。

原创粉丝点击