Java — один из самых популярных языков программирования, названный в честь сорта кофе.
Основная идея Java
Основная идея Java — создание языка, код которого можно запускать на любой платформе: компьютере, сервере, телефоне. Отсюда слоган: «Write once, run anywhere» (напиши один раз, запускай где угодно).
Работа Java
Все языки программирования помогают общаться с компьютером, переводя написанный код в машинный код. Это происходит через компиляцию (весь код переводится сразу) или интерпретацию (код переводится и выполняется по частям).
Java компилируется в промежуточный код — байт-код. Байт-код — это не машинный код для конкретного процессора, а инструкции для Java Virtual Machine (JVM). JVM выполняет байт-код, обеспечивая кроссплатформенность.
JVM, JRE и JDK
Важно различать три аббревиатуры:
- JVM (Java Virtual Machine): Виртуальная машина, выполняющая байт-код Java (и других языков, таких как Groovy, Kotlin и Scala). Управляет памятью, оптимизирует код и выполняет другие задачи.
- JRE (Java Runtime Environment): Содержит инструменты и компоненты для перевода Java-кода в машинный код и обеспечивает среду выполнения Java-приложений. Включает JVM и необходимые библиотеки.
- JDK (Java Development Kit): Содержит JRE и инструменты для разработки: компилятор, отладчик, генератор документации и другие утилиты. Необходим для написания Java-программ.
JRE достаточно для запуска приложений, а JDK необходим для разработки. Несмотря на кроссплатформенность Java, JVM, JRE и JDK платформозависимы из-за различий в конфигурации операционных систем.
Java как объектно-ориентированный язык
Java — объектно-ориентированный язык (ООП). ООП — способ организации кода в блоки (объекты) с определёнными свойствами. Java — строго типизированный язык. Перед использованием переменной нужно указать её тип данных, чтобы избежать ошибок. Синтаксис Java похож на C, с использованием фигурных скобок для обозначения блоков кода. Для работы с памятью используется сборщик мусора, автоматически освобождающий память.
Популярность Java
Популярность Java обусловлена: простотой изучения, кроссплатформенностью, высокой производительностью, многопоточностью, высоким уровнем безопасности и надёжности. Это привело к большому сообществу, обширной документации и множеству инструментов и фреймворков.
Фреймворки и инструменты
- Spring: Набор инструментов для разработки веб-приложений и приложений с бизнес-логикой (Spring MVC, Spring Data, Spring Security, Spring Boot).
- Hibernate: Фреймворк для работы с базами данных, использующий ORM (Object-Relational Mapping), позволяющий обращаться к базе данных без написания SQL-запросов.
- Apache Maven, Gradle, Ant: Сборщики проектов для больших проектов. Сборка преобразует код, библиотеки и ресурсы в формат, понятный JVM (компиляция в байт-код, подключение библиотек, создание исполняемых файлов .jar или .war, тестирование и генерация документации).
Применение Java
На Java пишут: веб- и десктоп-приложения, Андроид-приложения, автотесты (Selenium), сервисы для обработки больших данных, игры (например, Minecraft). Java-апплеты (программы, запускающиеся в браузере) практически исчезли из-за необходимости JRE и других недостатков. Платформа J2ME (Java Platform, Micro Edition) для разработки мобильных приложений на устройствах с ограниченными ресурсами также устарела.
Недостатки байт-кода
Вопрос о недостатках компиляции в байт-код по сравнению с компиляцией в машинный код остаётся открытым для обсуждения.