Первая программа и javac

Тема дорожной карты · Java

Программа «Привет, мир» на Java — это канонический первый пример, подтверждающий корректную установку JDK и знакомящий с фундаментальной структурой, которой должен следовать каждый файл с исходным кодом на Java. Выполнение любого Java-приложения начинается с метода public static void main(String[] args), который JVM находит по имени после загрузки и инициализации класса через ClassLoader; массив args содержит аргументы командной строки, переданные при запуске. Единственный оператор System.out.println("Hello, World!"); вызывает метод println на объекте System.out, являющемся экземпляром PrintStream, статически инициализированным JRE, — это запускает прогрев пути ввода-вывода JIT-компилятором и отслеживание выделенного строкового литерала со стороны GC. Написание «Привет, мир» на Java также демонстрирует цикл компиляции и запуска: javac HelloWorld.java (часть JDK) компилирует исходный код в байткод HelloWorld.class, а java HelloWorld (лаунчер JRE) запускает JVM, загружает класс и вызывает main. Запускать однофайловую программу напрямую командой java HelloWorld.java — без явного вызова javac — можно ещё с Java 11: JEP 330 давно финализирован и отлично подходит для скриптов и быстрых экспериментов. Порог входа продолжил снижаться: серия preview-JEP (445 в Java 21, 463 в Java 22 и далее) финализирована в Java 25 как JEP 512 (compact source files и instance main methods) — теперь минимальная программа записывается просто как void main() { IO.println("Привет!"); }, без класса, static и String[] args.

Как это работает

Первая программа и javac компилирует исходник .java в байткод (.class), который исполняется на JVM (Java Virtual Machine). JVM даёт GC, JIT-компиляцию (HotSpot, GraalVM) и платформенную абстракцию. Основные дистрибутивы: OpenJDK (референс), Temurin (Eclipse, бесплатно, популярно), Liberica (BellSoft, удобная поддержка для РФ), Amazon Corretto. В production — LTS-версии (17, 21, 25); non-LTS-релизы (каждые 6 месяцев) — для экспериментов с инструментами.

Когда применять

Java — для любого enterprise-backend, разработки Android (Kotlin или Java), проектов с гравитацией JVM-экосистемы (Spring, Hibernate, Kafka-клиент, Elasticsearch-клиент). Startup time + базовая память выше Go и Rust; экосистема библиотек + тулинга + observability непревзойдённа. Liberica или Temurin для production-сборок; пиньте major-версию + patch в CI.

Типичные ошибки

Ловушки Первая программа и javac: надежда на «вечно бесплатный» Oracle JDK: с JDK 17 по лицензии NFTC он бесплатен и в production, но лишь в течение окна поддержки (для 21 — до сентября 2026, для 25 — дольше), дальше — платная подписка или миграция (Temurin/Corretto/Liberica остаются безопасными дефолтами); пиннинг non-LTS-релиза (вынуждены обновляться каждые 6 месяцев); копирование туториалов для Java 8 (new ArrayList<Integer>()List.of(...); лямбды изменили композицию всего). Прочтите migration notes к целевому LTS.

Связанные понятия

Полезные ресурсы

Проверить знания (2)

Загрузка вопросов…