Java System.out.println() 一个数组

标签 java arrays system.out

我一直想知道当你在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/

相关文章:

java - 节点间通信

java - 将 OBJ 模型加载到 M3G 中

php - 如何通过定义的键对数组值求和?

java - System.out.println() 除了将输出打印到控制台外还有其他用途吗?

Java - 为什么打印出 "007F"?

java - JAXB 从 .xml 文件解码到 jlist

java - 安全性:限制第三方软件的内部访问

javascript - Promise.all 的顺序执行

java - float 据[] = 新浮点[j];为什么这在 java 中无效?我们不能有一个 float 类型的数组吗?

java - 如何在 Java 中禁用 System.out 以提高速度