黑马程序员技术交流社区

标题: 值传递与引用传递 [打印本页]

作者: 早知道    时间: 2013-9-20 21:59
标题: 值传递与引用传递
  1. public class Test1 {
  2. public static void main(String[] args) {
  3. // TODO Auto-generated method stub
  4. Integer i=1,j=2;
  5. swap(a,b);
  6. System.out.println(i+" j: "+j);
  7. }
  8. public static void swap(Integer a,Integer b){
  9. int temp=0;
  10. temp=a;
  11. a=b;
  12. b=temp;

  13. System.out.println(a+"b: "+b);
  14. }

  15. }
复制代码
上面例子中调用swap方法后,i与j的值并没有改变,这是因为实际参数i,j只是把值传递给了形式参数a,b,执行方法时形式参数a,b的值的改变不影响实际参数i和j的值,i和j的值在调用前后并没改变.这就是值传递。
值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值。
引用传递:也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值。
值传递的类型为基本数据类型,引用传递就是对象引用为参数。
除此之外,String在这方面的特点是也是属于值传递。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2