| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 605 人关注过本帖
标题:一道Java中关于对象引用问题,希望各位大侠能存内存角度帮帮讲讲啊
只看楼主 加入收藏
zcs302567601
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2009-9-21
结帖率:100%
收藏
 问题点数:0 回复次数:3 
一道Java中关于对象引用问题,希望各位大侠能存内存角度帮帮讲讲啊
public   class   Test
{   public int   i,j;   
    public   void   test_m(Test   a) //这里给a分配内存了吗?
    {     Test   b   =  new   Test();
          b.i   =   1;
          b.j   =   2;
          a   =   b; //这句从内存角度考虑,是什么意思啊
    }
    public   void   test_m1(Test   a   )
    {     a.i   =   1;
        a.j   =   2;
    }
    public   static   void   main(String   argv[])
    {     Test   t=   new   Test();
          t.i   =   5;
          t.j   =   6;
          System.out.println( "t.i   =   "+   t.i   +   "   t.j=   "   +   t.j); //结果是5,6
          t.test_m(t);
          System.out.println( "t.i   =   "+   t.i   +   "   t.j=   "   +   t.j); //5,6   为什么结果是5,6啊
          t.test_m1(t);
          System.out.println( "t.i   =   "+   t.i   +   "   t.j=   "   +   t.j); //1,2
    }
}
希望各位能从内存角度给我讲讲,对象作为传递参数 是怎么执行啊,必将感激不尽!!!!
搜索更多相关主题的帖子: 内存 Java 对象 角度 
2010-10-14 20:07
zcs302567601
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2009-9-21
收藏
得分:0 
悲剧了,怎么没人理我啊
2010-10-14 21:00
syg5434
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:山沟沟
等 级:版主
威 望:10
帖 子:285
专家分:781
注 册:2010-2-28
收藏
得分:0 
其实第二次打印跟第一次打印结果是一回事,打印了两次而已
调用test_m方法,把t作为参数传进去,这个操作对main中的t没有任何变化,
变化体现在test_m方法里的,变化的是你传进去的参数a,不是main中的t,在test_m方法中打印a.i和a.j才会看到效果

不要迷恋哥,嫂子会揍你。阿-弥-陀-佛--!
2010-10-15 11:59
jackieli2074
Rank: 6Rank: 6
来 自:上海
等 级:侠之大者
威 望:1
帖 子:183
专家分:494
注 册:2010-8-3
收藏
得分:0 
输出5,6倒是明白 如楼上
输出1,2就有点懵
2010-10-15 16:24
快速回复:一道Java中关于对象引用问题,希望各位大侠能存内存角度帮帮讲讲啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016484 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved