A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 早知道 中级黑马   /  2013-9-20 21:59  /  895 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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在这方面的特点是也是属于值传递。

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马