当前位置: 首页 > 面试题库 >

使用int代替String:public static void main(int [] args)

丁嘉庆
2023-03-14
问题内容

我的印象是main方法必须具有“ public static void main(String [] args){}”形式,您不能传递int []参数。

但是,在Windows命令行中,当运行以下.class文件时,它接受int和string作为参数。

例如,使用此命令将给出输出“ stringers”:“ java IntArgsTest stringers”

我的问题是,为什么?为什么此代码将字符串作为参数接受而没有错误?

这是我的代码。

public class IntArgsTest 
{
    public static void main (int[] args)
    {

        IntArgsTest iat = new IntArgsTest(args);

    }

    public IntArgsTest(int[] n){ System.out.println(n[0]);};

}

问题答案:

传递给main方法(JVM用来启动程序的一种方法)的所有内容都是String,包括所有内容。它可能看起来像int 1,但实际上是字符串
1”,这是一个很大的区别。

现在有了您的代码,如果尝试运行它会发生什么?确保它可以编译,因为它是有效的Java,但您的主要方法签名与JVM作为程序起点所需的签名不匹配。

要运行代码,您需要添加有效的main方法,例如,

public class IntArgsTest {
   public static void main(int[] args) {

      IntArgsTest iat = new IntArgsTest(args);

   }

   public IntArgsTest(int[] n) {
      System.out.println(n[0]);
   };

   public static void main(String[] args) {
      int[] intArgs = new int[args.length];

      for (int i : intArgs) {
         try {
            intArgs[i] = Integer.parseInt(args[i]);
         } catch (NumberFormatException e) {
            System.err.println("Failed trying to parse a non-numeric argument, " + args[i]);
         }
      }
      main(intArgs);
   }
}

然后在调用程序时传递一些数字。



 类似资料:
  • 我的印象是main方法必须具有“public static void main(string[]args){}”的形式,您不能传递int[]参数。 但是,在windows命令行中,当运行下面的.class文件时,它同时接受int和string作为参数。 例如,使用此命令将给出输出“stringers”:“java IntArgsTest stringers”

  • 创建一个名为平均值的方法,用于计算作为参数传递的数字的平均值。之前创建的方法和必须在此方法中使用! 在以下模板中定义方法: 我正在努力将sum()方法放在average()方法中。我不知道如何让它工作,因为我在eclipse中不断遇到这样的错误: 这是我的代码: 我知道这与我将average方法定义为double类型有关,但我尝试将它们改为double,并调用我的变量“int avg=…”作为“双

  • 所以假设我有一个包含大量ints和double的程序。如果我知道这个数字合适的话,是否值得把我的整数改为字节或短号? 我知道java没有无符号类型,但是如果我知道数字只为正数,我还能做什么吗? 我所说的高效主要是指处理。我假设,如果所有变量都是一半大小,垃圾收集器会快得多,计算也可能会快一些。(我想既然我在android上工作,我也需要担心一下ram。) 当我开始一个新项目的时候,值得从一开始就做

  • 描述 (Description) 此方法返回此对象表示的字符序列中最后一次出现的索引,该索引小于或等于fromIndex,如果该字符在该点之前未出现,则返回-1。 语法 (Syntax) 以下是此方法的语法 - public int lastIndexOf(int ch, int fromIndex) 参数 (Parameters) 这是参数的细节 - ch - 一个角色。 fromIndex

  • 描述 (Description) 此方法返回指定字符第一次出现的此字符串中的索引,在指定索引处开始搜索,如果未出现该字符,则返回-1。 语法 (Syntax) 以下是此方法的语法 - public int indexOf(int ch, int fromIndex) 参数 (Parameters) 这是参数的细节 - ch - 一个角色。 fromIndex - 从中开始搜索的索引。 返回值 (

  • 描述 (Description) java.util.zip.Deflater.deflate(byte[] b, int off, int len, int flush)方法压缩输入数据并使用压缩数据填充指定的缓冲区。 返回压缩的实际数据字节数。 声明 (Declaration) 以下是java.util.zip.Deflater.deflate(byte[] b, int off, int l