Что такое "String args []"? параметр в основном методе Java

Я только начинаю писать программы на Java. Что означает следующий код Java?

public static void main(String[] args)
  • Что такое String[] args?

  • Когда вы будете использовать эти args?

Исходный код и/или примеры предпочтительнее абстрактных объяснений

Ответ 1

В Java args содержатся предоставленные аргументы командной строки в виде массива объектов String.

Другими словами, если вы запустите свою программу как java MyProgram one two, то args будет содержать ["one", "two"].

Если вы хотите вывести содержимое args, вы можете просто пропустить их так...

public class ArgumentExample {
    public static void main(String[] args) {
        for(int i = 0; i < args.length; i++) {
            System.out.println(args[i]);
        }
    }
}

Ответ 2

Это аргументы командной строки в Java.

Другими словами, если вы запустите

java MyProgram один два

Затем args содержит:

[ "one", "two" ]

public static void main(String [] args) {
    String one = args[0]; //=="one"
    String two = args[1]; //=="two"
}

Причина этого заключается в том, чтобы настроить приложение для запуска определенным образом или предоставить ему некоторую часть информации, которая ему нужна.


Если вы новичок в Java, я настоятельно рекомендую ознакомиться с официальным учебным пособием Oracle Java TM.

Ответ 3

args содержит аргументы командной строки, переданные программе Java при вызове. Например, если я вызываю программу следующим образом:

$ java MyProg -f file.txt

Тогда args будет массивом, содержащим строки "-f" и "file.txt".

Ответ 4

Следующий ответ основан на моем понимании и некоторых тестах.

Что такое String [] args?

Ans- >

String [] → Как мы знаем, это простой массив String.

args → это имя массива, которое может быть чем угодно (например, a, ar, argument, param, parameter), никаких проблем с компилятором и выполненных, и я также тестировал.

например.
1) public static void main (аргумент String [])

2) public static void main (параметр String [])

Когда вы будете использовать эти аргументы?

Ans →

Основная функция разработана очень разумно разработчиками. Фактическое мышление очень глубокое.   Что в основном разрабатывается при рассмотрении C и С++ на основе аргумента командной строки, но в настоящее время его больше никто не использует.

Thing 1 - Пользователь может вводить любые данные из командной строки, может быть Number или String, и необходимо принять его компилятором, какой тип данных нам нужно использовать? см. вещь 2

Thing 2 - String - это тип данных, который поддерживает все примитивные типы данных, такие как int, long, float, double, byte, shot, char в Java. Вы можете легко проанализировать его в любом примитивном типе данных.

E.g Следующая программа скомпилирована и выполнена, и я также протестировал ее.

Если входной сигнал → 1 1

// one class needs to have a main() method
public class HelloWorld
{
  // arguments are passed using the text field below this editor
  public static void main(String[] parameter)
  {    
System.out.println(parameter[0] + parameter[1]); // Output is 11

//Comment out below code in case of String
    System.out.println(Integer.parseInt(parameter[0]) + Integer.parseInt(parameter[1])); //Output is 2
    System.out.println(Float.parseFloat(parameter[0]) + Float.parseFloat(parameter[1])); //Output is 2.0    
    System.out.println(Long.parseLong(parameter[0]) + Long.parseLong(parameter[1])); //Output is 2    
    System.out.println(Double.parseDouble(parameter[0]) + Double.parseDouble(parameter[1])); //Output is 2.0    

  }
}

Ответ 5

String [] args - это также то, как вы объявляете массив строк в Java.

В этой сигнатуре метода массив args будет заполнен значениями при вызове метода (как показывают другие примеры здесь). Поскольку вы изучаете, однако, стоит понять, что этот массив args похож, если вы создали его самостоятельно в методе, как в этом:

public void foo() {
    String [] args = new String[2];
    args[0] = "hello";
    args[1] = "every";

    System.out.println("Output: " + args[0] + args[1]);

    // etc... the usage of 'args' here and in the main method is identical
}

Ответ 6

Я разбился бы

public static void main(String args[])

по частям.

"public" означает, что main() можно вызывать из любого места.

"static" означает, что main() не принадлежит к определенному объекту

"void" означает, что main() не возвращает значение

"main" - это имя функции. main() является особенным, потому что это начало программы.

"String []" означает массив строки.

"args" - это имя String [] (внутри тела main()). "args" не является особенным; вы могли бы назвать его чем-то другим, и программа будет работать одинаково.

  • String[] args - это набор строк, разделенных пробелом, который можно ввести в программу на терминале. Больше времени, чем нет, новичок не собирается использовать эту переменную, но он всегда присутствует на всякий случай.

Ответ 7

Когда вы закончите свой код, вы превратите его в файл с расширением .java, который можно запустить, дважды щелкнув по нему, но также и на консоли (терминал на mac, cmd.exe на окнах), что позволяет пользователь делает много вещей. Одна вещь - они могут видеть сообщения консоли (System.out.print или System.out.println), которые они не могут видеть, если они дважды щелкнут. Другое, что они могут сделать, это указать параметры, поэтому обычно вы используете линию

java -jar MyCode.jar

после перехода к папке программы с помощью

cd C:My/Code/Location

в окнах или

cd My/Code/Location

на Mac (обратите внимание, что mac менее clunky) для запуска кода, но для указания параметров, которые вы использовали бы

java -jar MyCode.jar parameter1 parameter2

Эти параметры, хранящиеся в массиве args, которые вы можете использовать в своей программе, вы хотите разрешить пользователю контролировать специальные параметры, такие как файл для использования или объем памяти, который может иметь программа. Если вы хотите знать, как использовать массив, вы, вероятно, можете найти тему на этом сайте или просто отправить ее в Google. Обратите внимание, что можно использовать любое количество параметров.

Ответ 8

Даже то, что OP говорит только о String[] args, я хочу дать полный пример public static void main(String[] args).

Public: это модификатор доступа, который определяет, кто может получить доступ к этому методу. Public означает, что этот метод будет доступен любому классу (если другие классы могут получить доступ к этому классу.).

Static: это ключевое слово, которое идентифицирует связанную с классом вещь. Это означает, что данный метод или переменная не относится к экземпляру, а относится к классу. Доступ к нему возможен без создания экземпляра класса.

Void: используется для определения типа возврата метода. Он определяет способ возврата метода. Void означает, что метод не вернет никакого значения.

main: имя метода. Это имя метода ищет JVM в качестве отправной точки для приложения с определенной сигнатурой.

String[] args: это параметр основного метода.

Если вы посмотрите исходный код JDK (jdk-src\j2se\src\share\bin\java.c):

/* Get the application main method */
mainID = (*env)->GetStaticMethodID(env, mainClass, "main",
                   "([Ljava/lang/String;)V");
...
{    /* Make sure the main method is public */
...
mods = (*env)->CallIntMethod(env, obj, mid);
if ((mods & 1) == 0) { /* if (!Modifier.isPublic(mods)) ... */
    message = "Main method not public.";
    messageDest = JNI_TRUE;
    goto leave;
...

Вы можете видеть, что метод запуска в java должен быть назван main и должен иметь общую public static void main(String[] args)

Код также сообщает нам, что public static void main(String[] args) не является фиксированным, если вы измените код в (jdk-src\j2se\src\share\bin\java.c) на другую подпись, это будет работа, но изменение этого даст вам другие возможные проблемы из-за спецификаций java

Offtopic: Прошло 7 лет с тех пор, как OP задал этот вопрос, я думаю, что OP может ответить на его собственный вопрос.

Ответ 9

Когда класс java выполняется с консоли, основным методом является то, что вызывается. Чтобы это произошло, определение этого основного метода должно быть

public static void main(String [])

Тот факт, что этот строковый массив называется args, является стандартным соглашением, но не требуется строго. Вы должны заполнить этот массив в командной строке, в которой вы запускаете свою программу

java MyClass a b c

Они обычно используются для определения параметров вашей программы, например файлов для записи или чтения.

Ответ 10

в public static void main (String args []) args - массив аргументов строки консоли, тип данных которых - String. в этом массиве вы можете хранить различные строковые аргументы, вызывая их в командной строке, как показано ниже: java myProgram Shaan Royal то Shaan и Royal будут сохранены в массиве как Arg [0] = "Shaan"; Arg [1] = "Royal"; вы можете сделать это вручную также внутри программы, когда вы не вызываете их в командной строке.

Ответ 11

Я думаю, что он довольно хорошо освещен в ответах выше, что String args[] - это просто массив строковых аргументов, которые вы можете передать приложению при его запуске. Для завершения я могу добавить, что он также действителен для определения параметра метода, переданного методу main в качестве аргумента переменной (varargs) типа String:

public static void main (String... args)

Другими словами, метод main должен принимать либо массив String (String args[]), либо varargs (String... args) в качестве аргумента метода. И нет волшебства с именем args. Вы также можете написать arguments или даже freddiefujiwara, как показано ниже, например:

public static void main (String[] arguments)

public static void main (String[] freddiefujiwara)

Ответ 12

Объяснение в простом языке непрофессионала.

Основной метод предполагает, что мы приводим некоторые аргументы, когда мы направляем наш JVM на имя класса. Это означает, что ваше имя файла - Try.java, теперь для выполнения этого в командной строке вы пишете "javac Try.java" для компиляции, за которым следует "java Try" для выполнения. Теперь предположим вместо того, чтобы писать просто "java Try", вы пишете "java Try 1". Здесь вы передали аргумент "1". Это будет сделано вашим основным методом, даже если вы не используете его в своем коде.

Если вы хотите проверить, действительно ли ваш основной метод принял аргумент "1" или нет. Просто внутри основного метода введите следующее:

for(int i = 0; i < args.length; i++) {
        System.out.println("Argument is: "+args[i]);
    }

Ответ 13

Стиль dataType[] arrayRefVar является предпочтительным. Стиль dataType arrayRefVar[] исходит из языка C/С++ и был принят на Java для размещения программистов на C/С++.

Ответ 14

Вы можете включить аргументы в свою программу, используя большинство современных IDE.

Например, в Intellij вы можете включить аргументы, выполнив:
Запустить → Изменить конфигурации... → Вкладка "Конфигурация" → "Аргументы программы"

enter image description here

Вы можете увидеть здесь его наиболее распространенное разделение пробелами, и если в имени есть пробелы, вы можете использовать двойные кавычки для его обертки.

public static void main(String[] args) {
     for(String arg: args) {
          System.out.println("arg " + arg);
     }

}

Этот фрагмент будет печатать:

аргумент arg1
аргумент arg2
имя аргумента arg 3