Почему метод main является общедоступным статическим в Java

Метод main в Java — это первый метод программирования, который знает Java-программист, когда начинает изучать язык программирования Java. вы когда-нибудь думали о почему основной метод в Java является общедоступным, статическим и недействительным , конечно да, так как большинство из нас сначала изучают C и C++, чем мы переходим на Java в нашем пути программирования, мы знакомы с основным методом но в Java основной метод немного отличается, он не возвращает никакого значения, как в C, он возвращает целое, основной метод является общедоступным статическим и пустым Почему ?

В этом посте мы попытаемся найти ответы на эти вопросы и иметь представление об одном из самых популярных вопросов в Java

почему объявлен метод main Static

.

Какой основной метод в Java?

Основной метод в Java — это точка входа для любой основной программы Java.

Помните, что мы не говорим о Servlet, MIDlet или любой другой Java-программе, управляемой контейнером, где для управления выполнением предусмотрены методы жизненного цикла.

В основной программе Java выполнение начинается с основного метода, когда вы вводите java main-class-name, JVM ищет метод public static void main(String args[]) в этом классе, и если он не находит этот метод выдает ошибку NoSuchMethodError:main и завершает работу.

Подпись основного метода в Java

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


public static void main(String args[])

Эта сигнатура является классической сигнатурой и существует с самого начала Java, но с введением переменного аргумента или varargs в Java5 вы также можете объявить метод main в Java используя синтаксис varargs, как показано в следующем примере:

public static void main(String. .. args)

Помните, что версия основного метода java с varargs будет работать только в Java 1.5 или более поздних версиях.

Помимо public, static и void, существуют определенные ключевые слова, такие как final, synchronized и strictfp, которые разрешены в сигнатуре основного метода java.

Почему метод main в Java статический?

Теперь перейдем к главному. «Почему метод main является статическим в Java» , причин довольно много, но вот несколько причин, которые мне понятны:

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

2. Так как C и C++ также имеют похожий метод main, который служит точкой входа для выполнения программы, следование этому соглашению поможет только Java.

3. Если бы основной метод не был объявлен статическим, тогда JVM должна создать экземпляр основного класса, а поскольку конструктор может быть перегружен и может иметь аргументы, для JVM не будет определенного и согласованного способа найти основной метод в Java .

4. Все, что объявлено в классе в Java, относится к ссылочному типу и требует создания объектов перед их использованием, но статический метод и статические данные загружаются в отдельную память внутри JVM, называемую контекстом, который создается при загрузке класса. Если основной метод статический, то он будет загружен в контексте JVM и доступен для выполнения.

Почему метод main является общедоступным в Java

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

Java, JVM может легко получить к нему доступ и выполнить его.

Почему метод main в Java недействителен

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

Резюме:

1. Основной метод должен быть объявлен общедоступным, статическим и недействительным в Java , иначе JVM не сможет запустить программу Java.

2. JVM выдает NoSuchMethodException:main , если не находит основной метод предопределенной подписи в классе, который предоставляется команде Java. Например. если вы запустите java Helloworld, JVM будет искать метод public static void main String args[]) в файле HelloWorld.class.

3. Метод main является точкой входа для любой программы Core Java. Выполнение начинается с основного метода.

4. Метод main запускается специальным потоком, называемым в Java «основным». Ваша Java-программа будет работать до тех пор, пока не запустится ваш основной поток или пока не запустится любой поток, не являющийся демоном, порожденный основным методом.

5. Когда вы видите «Исключение в основном потоке» , например,

Исключение в основном потоке: Java.lang.NullPointerException , это означает, что исключение генерируется внутри основного потока.

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

public static void main(String… args)

7. Помимо static, void и public, в сигнатуре основного метода в Java можно использовать модификатор final, synchronized и strictfp.

8. Основной метод в Java может быть перегружен, как и любой другой метод в Java, но JVM будет вызывать только основной метод с указанной выше сигнатурой.

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

10. Блок статического инициализатора выполняется еще до того, как JVM вызовет основной метод. Они выполняются, когда класс загружается в память с помощью JVM.

Некоторые учебные пособия, которые могут вам понравиться

Как разделить строку в программе Java

Как работает подстрока в Java

Как отладить программу Java в Eclipse — советы

Пример замены строки в Java

Фабричный шаблон в Java с примером

Шаблон декоратора в Java с примером

15 лучших вопросов для собеседования в Java

Документация JDK 20 — Главная