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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曹思敏 中级黑马   /  2013-6-8 19:14  /  1072 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?


评分

参与人数 1技术分 +1 收起 理由
刘凯 + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
楼主注意:Java中明确说了 只有值传递 没有引用传递
其实  这么理解就可以了  以前说的引用传递其实也是值传递的一种
因为引用变量也是变量  存储在栈内存中  引用变量的值不就是地址值么

如果把引用变量作为参数 传给某个函数的时候  其实  就相当于把这个地址值传给了一个在该函数方法内可见的
临时引用变量

e.g.
  1. class A{
  2.    int a =5;
  3.    int b =12;
  4. }

  5. class B{
  6.     public static void change(A obja){
  7.        obja.a =10;
  8.        obja.b =22;
  9.     }

  10.   public static void main(String[] args){
  11.       A oA =new A();
  12.       System.out.println(oA.a +";;;;"+ oA.b);
  13.           change(oA);
  14.       System.out.println(oA.a +";;;;"+ oA.b);
  15.   }
  16. }
复制代码
打印结果:
D:\BlackHorse_Pro\IO>java B5;;;;1210;;;;22
内存图如下:


1234.jpg (26.01 KB, 下载次数: 0)

内存图

内存图

评分

参与人数 1技术分 +2 收起 理由
袁梦希 + 2 很给力!

查看全部评分

回复 使用道具 举报
楼主你好  如果帖子的问题已经解决,请把帖子的类型改为“已解决”。{:soso_e102:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马