2010-10-16 2 views
6
public static void main(String[] args) 
{ 
    boolean t=true; 
    System.out.println("Before return"); 
    if(t) return; 
    System.out.println("not execute"); 
} 

В приведенном выше коде, когда используется return, он должен вернуться к функции, которая вызывает основную функцию. Кто именно называет функцию main?Кто вызывает основную функцию в java?

+1

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

ответ

10

Java-классы выполняются в более широком контексте (конкретный JVM, как отмечали другие). Ниже приведены некоторые возможности:

Во всех случаях метод main() является канонической точкой входа для выполнения кода, заданного определенным классом. Из документов на java JVM:

ОПИСАНИЕ

Инструмент Java запускает приложение Java. Он делает это, запустив среду выполнения Java, загружая указанный класс и вызывая основной метод этого класса. Декларация метод должен выглядеть следующим образом:

public static void main(String args[]) 

метод должен быть объявлен общественности и статична, она не должна возвращать никакого значения, и он должен принять массив строк в качестве параметра. По умолчанию первым аргументом без параметра является имя вызываемого класса. Должно использоваться полное имя класса. Если указан параметр -jar, первым аргументом без параметра является имя архива JAR, содержащего файлы классов и ресурсов для приложения, с классом запуска, обозначенным заголовком манифеста Main-Class.

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

Аргументы без параметра после имени класса или имени файла JAR передаются основной функции.

Команда javaw идентична java, за исключением того, что с javaw нет связанного окна консоли. Используйте javaw, когда вы не хотите, чтобы появилось окно командной строки. Тем не менее, javaw launcher отображает диалоговое окно с информацией об ошибке, если по какой-то причине запуск невозможен.

Вы состояние:

В приведенном выше коде, когда возвращение используется, то он должен вернуться к функции, которая вызывает основную функцию.

Там не может быть любых других функций Java (на самом деле, как правило, нет), которая вызывает функцию main(). Это соглашение для объявления известной точки входа. Если JVM запущен для запуска метода main() вашего класса, то, когда возвращается main(), JVM завершает работу, за исключением нескольких особых случаев, например. есть другие потоки, не связанные с демонами, или есть крюк остановки.

+0

В моей цитате моего утверждения отсутствует мое квалификационное предложение: «за исключением нескольких особых случаев, например, есть другие потоки не-демона, или есть крюк остановки». который охватывает ваши проблемы. –

17

Виртуальная машина Java.

0

Виртуальная машина Java использует main() в качестве отправной точки для программы точно так же как int main() в C++.

0

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

0

Jvm начинает основной поток для вызова основного метода.