黑马程序员技术交流社区

标题: 输出结果 [打印本页]

作者: qxc1281    时间: 2015-7-1 10:10
标题: 输出结果
  1. public class Main {
  2.         public static void main(String[] args) {
  3.                 int a[][] = {{1,2},{1}};
  4.                 System.out.println(a);
  5.                 System.out.println(a[0]);
  6.         }
  7. }
复制代码
为什么结果不一样啊

作者: umbriel    时间: 2015-7-1 10:23
System.out.println(a); 这句输出的是二维数组的内存地址,下面那句输出的是a[0]这个一维数组的内存地址
作者: zhangshuai_123    时间: 2015-7-1 10:26
输出会报错,a没有指定输出那个数,a[0]也报错,输出方式不对
作者: qxc1281    时间: 2015-7-1 10:26
umbriel 发表于 2015-7-1 10:23
System.out.println(a); 这句输出的是二维数组的内存地址,下面那句输出的是a[0]这个一维数组的内存地址 ...

二维数组的首地址,不应该和第一个一维数组的首地址相同吗
作者: 守门员    时间: 2015-7-1 10:27


作者: qxc1281    时间: 2015-7-1 10:28
zhangshuai_123 发表于 2015-7-1 10:26
输出会报错,a没有指定输出那个数,a[0]也报错,输出方式不对

输出的地址值
作者: jlnu_wl    时间: 2015-7-1 10:28
不一样的,System.out.println(arr);这个打印输出的应该是二维数组的值
  System.out.println(arr[0]);这个打印输出的应该二维数组中第一个一维数组的值
作者: umbriel    时间: 2015-7-1 10:37
qxc1281 发表于 2015-7-1 10:26
二维数组的首地址,不应该和第一个一维数组的首地址相同吗

打印a或a[0],得到的是内存地址对应的哈希值,a是一个二维数组的对象,而a[0]是一维数组的对象。所以在哈希算法里他们得到的哈希值是不同的。刚我回答的有误,sorry。
作者: qxc1281    时间: 2015-7-1 10:51
umbriel 发表于 2015-7-1 10:37
打印a或a[0],得到的是内存地址对应的哈希值,a是一个二维数组的对象,而a[0]是一维数组的对象。所以在哈 ...

明白了.谢谢




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