关于Java语言中参数传递详解
来源:优易学  2011-12-26 13:21:37   【优易学:中国教育考试门户网】   资料下载   IT书店

  和其它程序设计语言类似,Java语言的参数传递也分为两种:
  1.按值传递(by value)
  适用范围:8种基本数据类型、String对象
  特点:在内存中复制一份数据,把复制后的数据传递到方法内部
  作用:在方法内部改变参数的值,外部数据不会跟着发生改变
  2.按址传递(by address)
  适用范围:数组、除String以外的其他所有类型的对象
  特点:将对象的地址传递到方法内部
  作用:在方法内部修改对象的内容,外部数据也会跟着发生改变
  基础示例代码:
  public class Test1{
  public static void t1(int n){
  n = 10;
  }
  public static void t2(String s){
  s = "123";
  }
  public static void t3(int[] array){
  array[0] = 2;
  }
  public static void main(String[] args){
  int m = 5;
  1(m);
  System.out.println(m);
  String s1 = "abc";
  t2(s1);
  System.out.println(s1);
  int[] arr = {1,2,3,4};
  t3(arr);
  System.out.println(arr[0]);
  }
  }
  按照上面的参数传递规则,该代码的输出结果应该是:5 abc 2.因为int类型是按值传递,所以把参数m传递到方法t1时,相当于又复制了一份m的值,在方法t1内部修改的是复制后的值,所以m的值不变,s1的输出和m类似。而arr是数组,属于按址传递,也就是把arr的地址传递到了方法t3内部,在方法t3内部修改数组中的值时,原来的内容也发生改变。

[1] [2] 下一页

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训