я постараюсь ответить как, пожалуйста, поправьте меня, если я ошибаюсь:Где и почему JVM проверяет, что тип возвращаемого метода ввода main (String args []) недействителен, а не что-то еще?
Где: Если статический метод вызывается с помощью Classname .method() или с помощью отражения, то это не имеет значения даже если вы измените тип возврата вызывающего метода, тот же метод все равно будет вызываться.
Так JVM, вероятно, проверяет это в одном из нативных методов jvm.cpp
methodHandle m (THREAD, init_klass->find_method(vmSymbols::object_initializer_name(),> vmSymbols::void_method_signature()));
if (m.is_null()) { ------ THROW_MSG_0 ………..
Почему: Хотя его бесполезно возвращать значение из основных, так как Java не делает ничего с это, но если мы будем пытаться изменить тип возврата основных в целом, например, JVM бросает
public static int main(String[] args) { return 1;
}java.lang.NoSuchMethodError: main Exception in thread "main"
Так может быть Java обязательным использование одной подписи для метод ввода main() для поддержания симметрии во всех написанных Java-программах.
@Thilo В java, возвращаемое значение из main не отбрасывается, а не позволяет вернуть любое значение из main. – akjain
Я все еще жду ответа на «Где». – akjain