psvm в Java означает public static void main(String[] args).

Это самый важный метод Java. Когда мы начинаем изучать Java (или любой другой язык программирования), первая функция (метод в Java), с которой мы сталкиваемся, — это метод main(). Это точка, с которой программа начинает свое выполнение.

публичный

Первое слово, т.е. p является общедоступным, который является модификатором доступа основного метода. Ключевое слово «public» означает, что любой объект может использовать основной метод. Мы можем получить доступ к классу из любого места. main() должен быть общедоступным, поскольку, если он не является общедоступным, его нельзя выполнять ни в одной программе.

Давайте посмотрим, что произойдет, если мы не определим main() как public.

статический

Второе слово, то есть s, является статическим, что позволяет вызывать main без создания экземпляра какого-либо объекта. Когда запускается среда выполнения Java, объект класса отсутствует. Если основной метод не будет статическим, JVM не сможет его вызвать, потому что объект класса отсутствует. Мы также могли бы написать static public вместо public static, это будет работать так же, но public static — это стандартный способ.

Давайте посмотрим, что происходит, когда мы не используем static в методе java main().

пустота

Третье слово, т. е. v, недействительно, что является возвращаемым типом основного метода. Тип возвращаемого значения «void» указывает, что метод не имеет возвращаемого значения. Это сделано потому, что как только main() завершается, программа Java также завершается. JVM ничего не может сделать для возвращаемого объекта. Так что нет смысла что-то возвращать.

основной

Четвертое слово, то есть m, является основным, что указывает на то, что это точка входа в программу. Это исправлено, и когда мы запускаем java-программу, JVM ищет main() в качестве отправной точки java-программы. Помните, что это идентификатор, а не ключевое слово.

Строка [] аргументы

Java main() принимает один аргумент массива типа класса java.lang.String. Это также называется аргументами командной строки Java. Все в операторе psvm исправлено, кроме этой части. Вы можете изменить имя аргумента массива строк, например, вы можете изменить args на myStringArgs. Аргумент строкового массива также может быть записан как String... args или String args[].

За кулисами

Когда программа Java начинает выполняться, вызывается java.exe. java.exe выполняет вызовы JNI (собственный интерфейс Java), и это загружает JVM. java.exe анализирует командную строку, создает новый массив строк и вызывает метод main(). Поток демона присоединяется к основному методу, и этот поток уничтожается только тогда, когда Java-программа прекращает выполнение.

Как может программа C/C++ возвращать int , но не возвращать Java?

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

Однако программа Java работает как «основной поток» в JVM. Программа Java даже не является процессом операционной системы напрямую. Между программой Java и операционной системой нет прямого взаимодействия. Прямого выделения ресурсов Java-программе напрямую не происходит, или Java-программа не занимает никакого места в таблице процессов. Тогда кому он должен вернуть значение?

По этой причине основной метод Java не возвращает состояние int или exit.