黑马程序员技术交流社区

标题: 多次调用封装的类中的不同方法,传入的数据如何进行变... [打印本页]

作者: 张晓辉    时间: 2013-8-21 23:24
标题: 多次调用封装的类中的不同方法,传入的数据如何进行变...
本帖最后由 张晓辉 于 2013-8-22 22:34 编辑

在主函数里,如下代码
  1. tool.ArrayPrint(arr);
  2. tool.ArraySort(arr);
  3. tool.ArrayPrint(arr);
复制代码
arr数组在排序前打印了一次,排序后又打印了一次,从直观上感觉每次传入的数组都是开始定义的那个,arr并没有返回。
请问数组是如何存储的?排序后的数组它是如何重新返回给arr的?有内存图更好。

作者: 穿靴子的猫    时间: 2013-8-22 22:33
数组就是引用数据类型 不管里面的值是什么类型的 你穿进去只要对数组进行改变依旧是改变外面的数组
用一句话比喻吧  你认识个人叫张三  而且这个张三我也认识是我老乡 但是咱俩不是在一个地方看到的 你在北京看到的 我在河北看到的 我和张三合伙做生意发财了 他请你吃饭 你知道他发了 然后因为他发了不节制就死了  你在类的外面创建arr 我在类里面处理arr 虽然咱俩不认识 但是还是认识这个arr 认识张三

缅怀张三
作者: 张晓辉    时间: 2013-8-22 22:42
穿靴子的猫 发表于 2013-8-22 22:33
数组就是引用数据类型 不管里面的值是什么类型的 你穿进去只要对数组进行改变依旧是改变外面的数组
用一句 ...

Thanks
仔细研究了下又懂了,数组数据存在于堆里面,栈里面的只是创建的一个变量用来引用堆里面相应的数据,就好比是个超链接,堆里面的数据改变了就是在堆里面改变了





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