Java main () метод объяснил

1. Обзор

Каждой программе нужно место для запуска; говорить о программах на Java - это метод main .

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

2. Общая подпись

Наиболее распространенный шаблон основного метода:

public static void main(String[]args) { }

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

Прежде чем мы углубимся в эти сигнатуры методов, давайте рассмотрим значение каждого ключевого слова общей сигнатуры:

  • public - модификатор доступа, означающий глобальную видимость

  • static - доступ к методу можно получить прямо из класса, мы

не нужно создавать экземпляр объекта, чтобы иметь ссылку и использовать его ** void - означает, что этот метод не возвращает значение

  • main - имя метода, который ищет идентификатор JVM

при выполнении Java-программы

Что касается параметра args , он представляет значения, полученные методом. Это то, как мы передаем аргументы программе при первом запуске.

Параметр args является массивом __String __s. В следующем примере:

java CommonMainMethodSignature foo bar

мы выполняем Java-программу с именем CommonMainMethodSignature и передаем 2 аргумента: foo и bar . Доступ к этим значениям внутри метода main возможен как args[0] (со значением foo ) и args[1] (со значением bar в качестве значения).

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

public static void main(String[]args) {
    if (args.length > 0) {
        if (args[0].equals("test")) {
           //load test parameters
        } else if (args[0].equals("production")) {
           //load production parameters
        }
    }
}

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

3. Различные способы написания метода main ()

Давайте проверим несколько разных способов написания метода main . Хотя они не очень распространены, они являются действительными подписями.

Обратите внимание, что ни один из них не относится к методу main , их можно использовать с любым методом Java, но они также являются действительной частью метода main .

Квадратные скобки могут быть расположены рядом с String , как в общем шаблоне, или рядом с args с любой стороны:

public static void main(String[]args) { }
public static void main(String args[]) { }

Аргументы могут быть представлены как varargs:

public static void main(String...args) { }

Мы даже можем добавить strictfp для метода main () , который используется для совместимости между процессорами при работе со значениями с плавающей запятой:

public strictfp static void main(String[]args) { }

synchronized и final также являются допустимыми ключевыми словами для метода main , но здесь они не будут иметь эффекта.

С другой стороны, final может быть применен к args для предотвращения изменения массива:

public static void main(final String[]args) { }

Чтобы завершить эти примеры, мы также можем написать метод main со всеми вышеупомянутыми ключевыми словами (которые, конечно, вы, вероятно, никогда не будете использовать в практическом приложении):

final static synchronized strictfp void main(final String[]args) { }

4. Наличие нескольких методов main ()

Мы также можем определить более одного main метода внутри нашего приложения.

Фактически, некоторые люди используют его как примитивную технику тестирования для проверки отдельных классов (хотя рамки тестирования, такие как JUnit , гораздо больше указаны для этого упражнения)

Чтобы указать, какой метод main должен выполнять JVM как точка входа нашего приложения, мы используем файл MANIFEST.MF . Внутри манифеста мы можем указать основной класс:

Main-Class: mypackage.ClassWithMainMethod

Это в основном используется при создании исполняемого файла .jar . Мы указываем, какой класс имеет метод main для запуска выполнения, через файл манифеста, расположенный в META-INF/MANIFEST.MF (закодирован в UTF-8)

5. Заключение

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

Имейте в виду, что, хотя все приведенные нами примеры действительны с точки зрения синтаксиса, они просто служат образовательным целям , и большую часть времени мы будем придерживаться общей подписи, чтобы выполнять свою работу.