黑马程序员技术交流社区

标题: 我的总结不是很理想,还有谁能更详细的给我总结下吗, [打印本页]

作者: 坚持不懈    时间: 2012-10-27 20:34
标题: 我的总结不是很理想,还有谁能更详细的给我总结下吗,
本帖最后由 坚持不懈 于 2012-11-2 06:21 编辑
  1. class Demo
  2. {
  3.         int x=3;
  4.         public static void main(String[] args)
  5.         {
  6.                 Demo d =new Demo();
  7.                 d.x=10;
  8.                 show(d);
  9.                 System.out.println(d.x);
  10.         }
  11.         public static void show(Demo d)
  12.         {
  13.                 d.x=6;
  14.         }
  15. }

  16. d在栈内存里产生  堆内存里产生一个int x=3
  17. d.x=10  堆内存里的int x 值现在是10
  18. 调用函数show在栈内存里产生,把整体d 传给show的参数
  19. show函数里改变的是d成员变量的值
  20. 最后输出是6


  21. class Demo
  22. {
  23.         public static void main(String[] args)
  24.         {
  25.                 int x = 4;
  26.                 show(x);
  27.                 System.out.println(x);
  28.         }
  29.         public static void show(int x)
  30.         {
  31.                 x = 2;
  32.         }
  33. }

  34. 在栈内存里产生一个 int x=4;
  35. show函数功能就是一个复制功能   
  36. 最后结果输出4
复制代码

作者: 张忠豹    时间: 2012-10-27 22:13
总结的很好啊!
在栈内存里产生一个 int x=4;
show函数功能就是一个复制功能   此时将show方法调用到栈内存中,其中,重新定义了一个x变量,这个变量只在show的内存区域内有效
.最后结果输出4





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