java println 数组_Java System.out.println()数组

本问题已经有最佳答案,请猛点这里访问。

我一直想知道在Java中打印数组时获得的值意味着什么。

float[] array = new float[] {1f,1f,1f,1f};

System.out.println(array);

我收到的输出是[F @ 7fbe847c

我认为F表示浮动(如果我输入错误,请纠正我)

我注意到当我使用字符串数组时,某些事情发生了变化

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

每个对象都有一个toString()方法,默认方法是显示该对象的类名表示形式,然后显示" @",然后显示其哈希码。hashCode的常规协定是:每当在同一对象上多次调用同一个对象时, 如果执行Java应用程序,则hashCode方法必须一致地返回相同的整数,前提是未修改该对象的equals比较中使用的信息,那么您将看到的是float和string数组的默认toString()表示形式。

谢谢,这似乎是我要寻找的


版权声明:本文为weixin_33476081原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。