Java: Настройка окружения
Теория: Запуск первой программы на Java
Начнем с установки Java и знакомства с REPL. Если на вашем компьютере пока не стоит Java, то выполните установку по нашей инструкции.
Если установка прошла без ошибок, то самое время убедиться в том, что Java работает. Заметьте, что "установилось" и "работает" — не одно и тоже. Наберите в терминале java --version. Вывод должен быть примерно такой:
REPL
Если все прошло удачно, то теперь самое время начать выполнять код на Java. Java поставляется со встроенным REPL (Read Eval Print Loop). REPL – это программа, которая работает как командная оболочка. Она ожидает ввод от пользователя (Read), выполняет введенный код (Eval) и печатает на экран результат (Print), затем снова входит в режим ожидания (Loop). Для его запуска достаточно набрать jshell:
Теперь можно выполнять код на Java и сразу же смотреть результат его выполнения. Наберите любой корректный код на Java и нажмите Enter:
REPL выводит результат выполнения операции прямо на экран и снова входит в режим ожидания ввода команд. Для выхода из репла достаточно нажать Ctrl + d. Такой способ работы очень хорошо подходит для быстрой проверки гипотез "а как работает эта штука?", а также для отладки и простых вычислений. REPL позволяет использовать переменные и запоминает предыдущий ввод:
Для успешного обучения крайне важно, чтобы весь код, который мы демонстрируем в дальнейшем, вы набирали и запускали локально. Только тогда будет приходить настоящее понимание того, что происходит. В тех случаях, когда репла недостаточно, код можно и нужно запускать в виде файлов.
Файлы
Создайте файл HelloWorld.java внутри git-репозитория hexlet-java из прошлого урока. Добавьте туда следующий код:
Теперь осталось запустить его на выполнение:
Если все было сделано правильно, то на экране появится строка Hello, Hexlet!, а программа успешно завершится. На этом этапе появляются первые соглашения и правила, о которых нужно знать:
- Файлы Java имеют расширение java
- Каждый Java файл содержит ровно один Java класс. Практически все файлы в Java это файлы с классами (еще есть интерфейсы, но мы их рассмотрим позже)
- Имя класса совпадает с именем файла без расширения
Класс HelloWorld, в нашем случае, не обычный Java класс, это точка входа в программу. Именно с нее начинается выполнение. Откуда Java знает как запустить этот класс? Это благодаря методу main. Его необходимо реализовать ровно в таком виде, в котором мы его видим выше:
Метод main() нужен только у входной точки, в остальных классах его не добавляют, так как эти классы не запускаются отдельно.
Компиляция и запуск
Команда java выглядит очень простой. На вход ей подается файл с исходным кодом, на выходе – результат выполнения. Под капотом происходит два действия: компиляция и запуск. Их можно выполнить отдельно и тогда станет виден весь процесс.
Java — компилируемый язык программирования. Файл с исходным кодом компилируемого языка нельзя взять и просто так запустить, сначала его нужно превратить в понятный для машины код. За это отвечает компилятор javac. Вызывается он так:
javac не запускает программу, он выполняет компиляцию, во время которой проверяется корректность программы (соответствие типов) и формируется файл HelloWorld.class с байткодом.
Почему байткод, а не машинный код? Дело в том, что Java программы запускаются через виртуальную машину JVM, поэтому компиляция создает не машинный код, а байткод, это машинный код для виртуальной машины JVM. Пока звучит сложно, поэтому рассмотрим этот вопрос в одном из следующих уроков, после того как немного поработаем с инфраструктурой
После того как компиляция прошла, программа готова к запуску. Запуск выполняется командой java:
Такой запуск ищет файл с именем HelloWorld.class в рабочей директории и запускает его. Файл HelloWorld.java уже не используется, его можно даже удалить. И изменения в этом файле не будут использованы до тех пор, пока не выполнится повторная компиляция.
Возникает вопрос, а зачем вызывать компилятор отдельно если команда java умеет делать это автоматически? На это есть множество причин и одна из них это то, что программы на Java состоят больше чем из одного файла. Об этом мы поговорим в следующим уроке.
Рекомендуемые программы
Завершено
0 / 9


