当我得到一个奇怪的输出时,我执行了下面提到的代码。任何人都可以解释为什么我得到这个输出吗?
代码:
public class Bar {
static void foo( int... x ) {
System.out.println(x);
}
static void foo2( float... x ) {
System.out.println(x);
}
public static void main(String args[])
{
Bar.foo(3,3,3,0);
Bar.foo2(3,3,3,1);
Bar.foo(0);
}
}
输出
[I@7a67f797
[F@3fb01949
[I@424c2849
为什么我们得到 "[I@"
/"[F@"
前缀和后面的 8 个字母数字字符,它们是内存地址吗?
最佳答案
Java 数组有一个toString()
方法,它简单地显示数组的类型([I
),然后是一个@
,后跟数组的哈希码 (7a67f797
)。这个值几乎没有意义。 toString()
是对传递给 System.out.println()
的每个对象调用的方法。
如果要查看数组的内容,请使用 java.util.Arrays.toString(array)
。
关于java - 谁能解释我在编译这个程序时得到的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20298626/