当前位置: 首页 > 知识库问答 >
问题:

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

羊舌旭尧
2023-03-14
public class Hello {
    public static void main(String args[]) {
        System.out.println(" This is awesome "+args);
    }
}

在上面的代码中,为什么在< code>main()中强制提到< code>String args[]以及为什么我们得到< code > "[ljava . lang . String;@174e5edb"作为输出?

共有2个答案

微生俊材
2023-03-14

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

乜飞航
2023-03-14

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

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

为什么我们打印时会得到“[Ljava.lang.字符串;@174e5edb”作为输出

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

 类似资料:
  • 最近,我在一门计算机科学课程上做了一个作业,要创建一个包含两个对象的类。 教授通过电子邮件批评如下:“构造函数、getter和setter中的sysout应该是主要方法。” 他英语说得不太好,所以这没什么帮助。有人知道关于我的代码他到底在说什么吗?这是我提交的代码: 是否必须将getter/setter放在main方法中?如果我这样做,代码实际上不会运行。

  • 问题内容: 我希望这个问题不会太笼统。我知道,要在您上进行绘制,您需要重写该方法,并将所有绘制代码​​放入该方法中。我的问题是为什么!为什么Java似乎不允许/提供使用诸如或方法的绘图?在delphi中,一切都变得如此简单。一定有一个原因我无法弄清楚。 问题答案: 那是因为这就是它的工作方式。它是以此方式设计的。但是我想你的问题是关于“为什么” 请记住,Swing大约在15年前问世。批评之一是该A

  • 问题内容: 以下代码在该行生成此错误消息。 这行有多个标记 -实现android.view.View.OnClickListener.onClick -new View.OnClickListener(){}类型的onClick(View)方法必须覆盖超类方法 我不明白为什么。这段代码摘自我所见过的众多示例。什么可能是错的? 问题答案: 检查项目的属性,并验证 Java Compiler- > C

  • 本文向大家介绍为什么在重写 equals方法的同时必须重写 hashcode方法,包括了为什么在重写 equals方法的同时必须重写 hashcode方法的使用技巧和注意事项,需要的朋友参考一下 我们都知道Java语言是完全面向对象的,在java中,所有的对象都是继承于Object类。 其 equals 方法比较的是两个对象的引用指向的地址,hashcode 是一个本地方法,返回的是对象地址值。O

  • 问题内容: 我开始学习Go,但对以下内容有所了解: 失败的原因是: 考虑到实现的事实,我不明白为什么Go不接受签名。有人可以帮忙解释吗? 问题答案: 我认为您对界面的理解不够充分。Interface {}本身就是一种类型。它由两部分组成:基础类型和基础值。 Golang没有重载。Golang类型系统按名称匹配,并且要求类型一致 因此,当您定义将接口类型作为参数的函数时: 这与采用int类型的函数不