Почему метод main () необходим в главном классе Java - PullRequest
8 голосов
/ 16 сентября 2011

Я знаю, что мы можем успешно скомпилировать и запустить Java-программу без метода main (), но почему нам все еще нужен метод main () в основном классе java?

Ответы [ 6 ]

9 голосов
/ 16 сентября 2011

Каждое Java-приложение должно содержать метод main, подпись которого выглядит следующим образом:

   public static void main(String[] args)

Как вызывается метод main

Основной метод в Javaязык похож на основную функцию в C и C ++.Когда интерпретатор Java выполняет приложение (вызываясь из управляющего класса приложения), он начинает с вызова основного метода класса.Затем метод main вызывает все другие методы, необходимые для запуска вашего приложения.

Если вы попытаетесь вызвать интерпретатор Java для класса, у которого нет метода main, интерпретатор откажется компилировать вашу программу и отобразитсообщение об ошибке, подобное следующему:

 In class NoMain: void main(String argv[]) is not defined

Аргументы к методу main

Как видно из следующего фрагмента кода, метод main принимает один аргумент:массив элементов типа String.

   public static void main(String[] args)

Этот массив представляет собой механизм, посредством которого система времени выполнения передает информацию в ваше приложение.Каждая строка в массиве называется аргументом командной строки.Аргументы командной строки позволяют пользователям влиять на работу приложения, не перекомпилируя его.Например, программа сортировки может позволить пользователю указать, что данные будут отсортированы в порядке убывания с этим аргументом командной строки:

    -descending

для получения дополнительной информации

http://journals.ecs.soton.ac.uk/java/tutorial/getStarted/application/main.html

6 голосов
/ 16 сентября 2011

Цитирование Java Спецификация языка (JLS) "A Java virtual machine starts execution by invoking the method main of some specified class, passing it a single argument, which is an array of strings"

Теперь типичное определение основного метода, с которого начинается выполнение:

public static void main(String[] args)

public - значение должно быть доступно из любого места

static - должно быть доступно статически, значение без экземпляра (при запуске JVM у него нет экземпляра класса, содержащего основной метод, следовательно, статический).

void - возвращает void.

Таким образом, метод main () жестко закодирован в JVM, чтобы сказать ему, что это отправная точка.

6 голосов
/ 16 сентября 2011

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

5 голосов
/ 16 сентября 2011

Вы можете скомпилировать любой класс Java без метода main, но автономное приложение не может работать без main() метода *.

Метод mainметод, который определен для вызова в начале приложения.Без этого нет места для запуска.

* ну, есть ужасные хаки, где вы можете это сделать, но это обман

2 голосов
/ 16 сентября 2011

main () является отправной точкой приложения. Когда приложение запускается, эта функция оценивается по вашему коду. Он отвечает за запуск вашего приложения.

1 голос
/ 23 августа 2018
  1. Чтобы ответить на этот вопрос, нам нужно понять фантастическую архитектуру Java.
  2. У нас есть исходный код Java (.java файл)
  3. Компилятор проверяет ошибки и генерирует байт-код в виде файла .class
  4. Затем загрузчик классов загружает .class файл
  5. После этого JVM берет на себя ответственность

    • a) JVM загружает статические блоки
    • б) После этого интерпретатор в JVM хочет прочитать код. В куче кода, с чего начать чтение, есть вопрос для JVM?

    • Ответ: Чтобы решить эту проблему, мы даем ключевое слово main в качестве подсказки для JVM, чтобы начать выполнение в этом методе.

  6. После этого Java будет выводить данные, имея дело с операционной системой и оборудованием
  7. Мой ответ достаточно ясен? Если есть какие-либо сомнения, пожалуйста, прокомментируйте.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...