java - 谁能解释我在编译这个程序时得到的输出?

标签 java

当我得到一个奇怪的输出时,我执行了下面提到的代码。任何人都可以解释为什么我得到这个输出吗?

代码:

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/

相关文章:

java - 在文件中从 Java 编写 Long 并在 C++ 中读取它

java - 正则表达式中的电子邮件之间允许有空格

java - 我怎样才能解决这个涉及具有最小内存需求的队列的 Java 编程挑战?

java - LWJGL Native 文件夹没有文件夹

java - 如何将文件复制到特定路径?

java - 如何在java中获取给定月份的最小和最大日期

java - 使用 Java String split() 很简单 "parser"

java - RxJava - Observable - 多个过滤器调用与一个过滤器调用

java - 适用于 Grails 的安全插件

java - 使用 RequestMapping 和 fromUriString 从浏览器进行 http 调用中的任意输入参数