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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qxc1281 中级黑马   /  2015-7-1 10:10  /  522 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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. }
复制代码
为什么结果不一样啊

8 个回复

倒序浏览
System.out.println(a); 这句输出的是二维数组的内存地址,下面那句输出的是a[0]这个一维数组的内存地址
回复 使用道具 举报
输出会报错,a没有指定输出那个数,a[0]也报错,输出方式不对
回复 使用道具 举报
umbriel 发表于 2015-7-1 10:23
System.out.println(a); 这句输出的是二维数组的内存地址,下面那句输出的是a[0]这个一维数组的内存地址 ...

二维数组的首地址,不应该和第一个一维数组的首地址相同吗
回复 使用道具 举报

回复 使用道具 举报
zhangshuai_123 发表于 2015-7-1 10:26
输出会报错,a没有指定输出那个数,a[0]也报错,输出方式不对

输出的地址值
回复 使用道具 举报
不一样的,System.out.println(arr);这个打印输出的应该是二维数组的值
  System.out.println(arr[0]);这个打印输出的应该二维数组中第一个一维数组的值
回复 使用道具 举报
qxc1281 发表于 2015-7-1 10:26
二维数组的首地址,不应该和第一个一维数组的首地址相同吗

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

明白了.谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马