我一直想知道当你在java中打印数组时得到的值意味着什么。
float[] array = new float[] {1f,1f,1f,1f};
System.out.println(array);
我收到的输出是 [F@7fbe847c
我假设 F 表示 float (如果我错了请纠正我)
我注意到当我使用字符串数组时,有些事情会发生变化
String[] array = new String[] {"a","a","a","a"}
System.out.println(array);
现在的输出是 [Ljava.lang.String;@7fbe847c
我假设是 Ljava.lang.String;意味着它是一个字符串数组(如果我错了请纠正我)。
不管怎样,@7fbe847c 保持不变。
我的问题不是如何打印数组(我已经知道使用 Arrays.toString()),我的问题是该值的含义是什么以及通常使用什么为了?
最佳答案
如上所述,仅打印就会调用对象的 toString 方法。由于此方法尚未被重写,因此将调用 Object 的 toString 方法。确切的输出在 javadocs 中指定 http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#toString()
上面写着
getClass().getName() + '@' + Integer.toHexString(hashCode())
即它是类名+“@”+对象hashCode()方法的HexString
关于Java System.out.println() 一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29270110/