数组参考说明

时间:2014-03-19 13:53:03

标签: java arrays

代码

int []arr = new int[4];
System.out.println(arr);

输出类似于

  

[I @ 54640b25

编译器究竟打印出来的是什么? arr的内存地址?与C不同,Java似乎没有将数组名称(单独)等同于数组的第一个位置。

2 个答案:

答案 0 :(得分:6)

在Java中,每个对象都有toString()方法,而数组是对象。默认显示类名表示,然后添加“@”,然后添加哈希码

  

类Object的toString方法返回包含的字符串   对象是实例的类的名称,at-sign   字符“@”,以及散列的无符号十六进制表示   对象的代码

尝试打印以下行,您应该得到相同的输出:

int[] arr = new int[5]; 
System.out.println(arr.getClass().getName() + "@" + Integer.toHexString(arr.hashCode()));

答案 1 :(得分:3)

使用以下命令打印数组的值:

Arrays.toString(arr);

使用System.out.println(arr)目录将打印使用默认的toString方法,该方法返回:

object.getClass().getName() + "@" + Integer.toHexString(object.hashCode())