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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© micro_hx 中级黑马   /  2015-6-10 15:18  /  469 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  能不能讲一下这个问题:
  static void sort(int[] obj){
   int[] obj2 = obj ;
  Arrays.sort(obj2);
}

为什么我排序了obj2, 而obj也变了啊。。。。

3 个回复

倒序浏览
第二个数组其实是获得了第一个数组的引用,他们在内存中指向的是同一个地址,当把第二个数组排序后,只是把相应元素的位置调换,数组的首地址不变,内存中其实就一段连续的地址块,不是两个地址块,这是我理解的
回复 使用道具 举报
forTomorrow 发表于 2015-6-11 10:50
第二个数组其实是获得了第一个数组的引用,他们在内存中指向的是同一个地址,当把第二个数组排序后,只是把 ...

谢谢啊,我现在能理解啊。。。。

基本类型的传参与对象的传参的却别了啊。。。
回复 使用道具 举报
引用是传址形式,所以不同引用指向的是同一地址,这样不管你操作哪个引用其实操作的都是同一个地址,所以会造成你的那个结果
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马