java-参数传递

package com.day11.参数传递;

public class Demo {

  /**
  * @param args
  * 基本数据类型参数值传递,不改变原值,因为调用后就会弹栈,而局部变量随之消失
  * 引用数据类型的值传递,改变原值,因为即使方法弹栈但是堆内存的数组对象还在,可以通过继续访问
  * 两者都是值传递,一个传递的是具体值,一个传递的是地址值
  */
  public static void main(String[] args) {
    int a=1;
    int b=2;
    change(a,b);
    System.out.println("a="+a+" "+"b="+b);//a=1 b=2

    int[] arr={1,2};
    changeArray(arr);
    System.out.println("arr[0]="+arr[0]+" "+"arr[1]="+arr[1]);//arr[0]=2 arr[1]=1
  }


  private static void change(int a, int b) {
    int temp;
    temp=a;
    a=b;
    b=temp;
    System.out.println("a="+a+" "+"b="+b);//a=2 b=1
  }

  private static void changeArray(int[] arr) {
    int temp;
    temp=arr[0];
    arr[0]=arr[1];
    arr[1]=temp;
    System.out.println("arr[0]="+arr[0]+" "+"arr[1]="+arr[1]);//arr[0]=2 arr[1]=1
  }
}

posted @ 2018-01-03 20:26  简简单单zjl  阅读(123)  评论(0)    收藏  举报