Первая программа и 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 21, JEP 463 (preview) позволяет запускать однофайловую программу непосредственно командой java HelloWorld.java без явной компиляции, снижая порог входа для скриптов и быстрых экспериментов.

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

Первая программа и javac компилирует исходник .java в байткод (.class), который исполняется на JVM (Java Virtual Machine). JVM даёт GC, JIT-компиляцию (HotSpot, GraalVM) и платформенную абстракцию. Основные дистрибутивы: OpenJDK (референс), Temurin (Eclipse, бесплатно, популярно), Liberica (BellSoft, удобная поддержка для РФ), Amazon Corretto. В production — LTS-версии (17, 21); 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 в production без коммерческой лицензии (бесплатно только не-prod с изменений 2019 — Temurin/Corretto/Liberica безопасные дефолты); пиннинг non-LTS-релиза (вынуждены обновляться каждые 6 месяцев); копирование туториалов для Java 8 (new ArrayList<Integer>()List.of(...); лямбды изменили композицию всего). Прочтите migration notes к целевому LTS.

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

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