Java для новичков: основы и принцип ‘напиши один раз’

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) для разработки мобильных приложений на устройствах с ограниченными ресурсами также устарела.

Недостатки байт-кода

Вопрос о недостатках компиляции в байт-код по сравнению с компиляцией в машинный код остаётся открытым для обсуждения.

Что будем искать? Например,программа