Введение в программирование на Java
Узнайте, что такое Java, как JVM и JDK работают вместе и какую роль Java играет в современной разработке программного обеспечения.
Java — это универсальный, статически типизированный, объектно-ориентированный язык программирования, разработанный с акцентом на переносимость. Программы компилируются в байткод, который выполняется на Java Virtual Machine (JVM), поэтому один и тот же файл .class может работать на Windows, macOS, Linux и любой другой системе с совместимой установленной JVM. Эта переносимость — отражённая в первоначальном девизе «write once, run anywhere» — по-прежнему является определяющей чертой языка.
Данная глава знакомит с языком, платформой и составляющими экосистемы Java, с которыми вы встретитесь в остальных разделах книги.
Что такое Java
Java была выпущена компанией Sun Microsystems в 1995 году и сейчас находится под управлением Oracle. Синтаксис языка заимствован из C и C++, однако вместо ручного управления памятью используется автоматический сборщик мусора, а такие возможности, как арифметика указателей и множественное наследование классов, — которые часто приводят к ошибкам в низкоуровневых языках — были исключены. В результате получился язык, который легко изучить, сложно сломать и который хорошо подходит для долгосрочных приложений, поддерживаемых большими командами.
Ключевые характеристики, которые вы заметите по мере изучения этой книги:
- Статическая типизация. Каждая переменная имеет тип, известный на этапе компиляции, поэтому компилятор обнаруживает многие ошибки ещё до запуска программы.
- Объектно-ориентированность. Код организован вокруг классов, объединяющих данные с методами, которые с ними работают.
- Переносимость. Исходный код компилируется в платформенно-нейтральный байткод, исполняемый любой JVM.
- Управление памятью. Сборщик мусора освобождает объекты, на которые больше нет ссылок.
- Многопоточность. Потоки, блокировки и современные утилиты для работы с параллелизмом являются частью стандартной библиотеки.
- Обратная совместимость. Программы, написанные для старых версий Java, почти всегда работают без изменений на более новых.
Где используется Java
Поскольку JVM работает практически на каждом серверном и настольном устройстве, Java проникла в почти все сферы разработки программного обеспечения:
- Серверные приложения — большинство крупных систем в электронной коммерции, банковском деле и корпоративных бэкендах используют Java (часто совместно со Spring, Jakarta EE или Quarkus).
- Android-приложения — стандартная библиотека Android в значительной мере является Java API, даже когда приложения написаны на Kotlin.
- Большие данные и потоковая обработка — Hadoop, Spark, Kafka, Flink, Elasticsearch написаны для JVM.
- Инструменты и системы сборки — Maven, Gradle, Jenkins и многие CI-инструменты работают на Java.
- Встроенные системы и IoT — смарт-карты, терминалы оплаты и промышленные контроллеры.
JDK, JRE и JVM
Три аббревиатуры путают начинающих сильнее, чем что-либо другое в Java. Вот что они означают:
- JVM (Java Virtual Machine) — среда выполнения, которая загружает байткод и исполняет его. Каждая операционная система поставляется со своей нативной JVM.
- JRE (Java Runtime Environment) — JVM в комплекте с основными библиотеками классов, необходимыми для запуска Java-программ. Это минимум, необходимый для запуска Java-кода.
- JDK (Java Development Kit) — JRE плюс инструменты для компиляции и отладки Java-кода:
javac(компилятор),jshell(REPL),javadoc(документация) и другие.
Для написания программ на Java устанавливается JDK; JRE входит в его состав, поэтому их не нужно устанавливать по отдельности. JDK от Oracle — лишь один из вариантов: OpenJDK является свободной реализацией с открытым исходным кодом, а такие дистрибутивы, как Eclipse Temurin, Amazon Corretto и Azul Zulu, упаковывают тот же OpenJDK с собственной долгосрочной поддержкой. Любой из них подойдёт для кода в этой книге — выберите один и двигайтесь дальше.
Пошаговая настройка описана в разделах Java Install и Java Environment Setup.
Первый взгляд на программу на Java
Полную программу Hello World вы напишете в разделе Java Hello World Program. А пока посмотрите, как выглядит минимальная Java-программа — тот же код, скомпилированный и выполненный на сервере:
Несколько вещей, на которые стоит обратить внимание, не вдаваясь пока в детали:
- Каждая программа находится внутри класса (здесь —
Hello). - Выполнение начинается в методе
mainс сигнатуройpublic static void main(String[] args). - Операторы заканчиваются точкой с запятой, а блоки заключены в фигурные скобки
{ ... }. System.out.printlnвыводит строку в стандартный поток вывода.
Версии Java и цикл выпуска
Начиная с Java 9 (2017 г.) каждые шесть месяцев выходит новая основная версия, а каждые два года — выпуск с долгосрочной поддержкой (Long-Term Support, LTS). Наиболее часто встречающиеся на практике текущие LTS-версии — Java 17 и Java 21. Книга написана с расчётом на Java 21; более ранние версии упоминаются только там, где различие существенно.
Что охватывает эта книга
Последующие главы проведут вас от чистой установки JDK до современного языка: основы синтаксиса, управление потоком, объектно-ориентированное программирование, фреймворк коллекций, исключения, обобщения, лямбды и потоки, ввод-вывод, параллелизм, JDBC, модули, а также новые возможности — записи, запечатанные типы, сопоставление с образцом и виртуальные потоки. Боковая панель группирует главы на 28 частей — читайте их по порядку для планомерного изучения или переходите к нужной теме.