为什么必须提及" String args []"在主要方法和&如果我们打印args []为什么我们得到这个作为输出:" [Ljava.lang.String; @ 174e5edb"?

时间:2015-10-19 12:13:19

标签: java string

public class Hello {
    public static void main(String args[]) {
        System.out.println(" This is awesome "+args);
    }
}

在上面的代码中,为什么必须在String args[]中提及main(),为什么在打印时我们会将"[Ljava.lang.String;@174e5edb"作为输出?

2 个答案:

答案 0 :(得分:1)

  

为什么必须在main()

中提到“String args []”

那是因为你可以在启动时将参数传递给应用程序,然后是该数组的内容。作为替代方案,您可以使用varargs,即String... args

  

为什么我们打印时会将“[Ljava.lang.String; @ 174e5edb”作为输出

这就是为数组实现toString()方法的方式(实际上是Object)。请改用Arrays.toString(args)

答案 1 :(得分:0)

main方法的签名只是按照它的方式定义。 String[]用于将参数传递给程序。 "[Ljava.lang.String;@174e5edb"是值的类型,即String[]"[Ljava.lang.String")。接下来是堆中的位置("@174...")。这是在java中表示对象的默认方式。如果要打印阵列的内容,可以使用System.out.println(Arrays.toString(args));