【问题标题】:Why it is mandatory to mention "String args[]" in main method & if we print args[] why do we get this as output : "[Ljava.lang.String;@174e5edb"? [duplicate]为什么必须在 main 方法中提及“String args[]”& 如果我们打印 args[] 为什么我们会得到它作为输出:“[Ljava.lang.String;@174e5edb”? [复制]
【发布时间】:2015-10-19 12:13:19
【问题描述】:
public class Hello {
    public static void main(String args[]) {
        System.out.println(" This is awesome "+args);
    }
}

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

【问题讨论】:

标签: java string


【解决方案1】:

为什么在 main() 中必须提到“String args[]”

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-31
      • 1970-01-01
      • 1970-01-01
      • 2018-05-09
      • 2018-02-23
      • 1970-01-01
      • 2021-12-19
      • 2010-10-18
      相关资源
      最近更新 更多