Главный принцип Java — переносимость. Исходный код не компилируется в машинный код конкретного процессора; вместо этого он компилируется в байт-код — промежуточное представление. Байт-код исполняется JVM, которая доступна на всех основных платформах.
Выполнение Java-программы включает три этапа. Сначала вы пишете исходный код в .java файлах. Затем компилятор javac преобразует его в байт-код (.class файлы). Наконец JVM интерпретирует или JIT-компилирует байт-код в машинные инструкции.
Три термина часто путают, но они вложены друг в друга: JVM — ядро, исполняющее байт-код; JRE добавляет стандартные библиотеки; JDK добавляет компилятор и инструменты разработчика.
С 2017 года Java выходит по предсказуемому расписанию: новая версия каждые 6 месяцев. Некоторые версии получают статус LTS (Долгосрочная поддержка) и поддерживаются несколько лет.
Java присутствует практически во всех областях разработки — от банковских систем и Андроид-приложений до конвейеров больших данных и облачных платформ.
Java обладает рядом характеристик, которые выделяют её среди других языков. Строгая статическая типизация устраняет целый класс ошибок на этапе компиляции. Сборщик мусора освобождает разработчиков от ручного управления памятью. Встроенная поддержка многопоточности и обширная экосистема Maven Central дополняют картину.