Java 中的 args 和 argh 和 argv 有什么区别?

What is the difference between args and argh and argv in Java?

在 hackerrank 上练习一些问题时,一些解决方案使用 argh 而不是 args(我经常使用)。另外,我知道还有另一个这样的参数可以传递给 main() 函数,那就是 argv。因此,总共存在三个不同的参数:

参数

argv

能否请您告诉我这三者之间的区别以及如何以及何时使用它们?

这是代码:

class Solution{
public static void main(String []argh){
    Scanner in = new Scanner(System.in);
    int n = in.nextInt();
    for(int i = 0; i < n; i++){
        String name = in.next();
        int phone = in.nextInt();
        // Write code here
    }
    while(in.hasNext()){
        String s = in.next();
        // Write code here
    }
    in.close();
  }
}

请注意,我不是在寻求上述问题的解决方案。我已经解决了它并成功提交,但我想知道添加 argh 而不是 args 会有什么不同?

提前致谢!

Java 函数签名根据它们的 return 和参数类型进行验证,但从不检查参数的名称。这意味着

public static void main(String... parameters) { /* [...] */ }

是一个有效的 main 函数。

这也意味着您在实现其功能时不必使用与接口相同的参数名称,或者在重载其功能时作为扩展的class。