Java

Что это такое

Java — статически типизированный компилируемый язык, который выполняется на виртуальной машине: исходный код компилируется в байт-код, а виртуальная машина исполняет его и попутно управляет памятью, загружает классы и оптимизирует горячий код прямо во время работы программы. Получается язык, многословный по современным меркам и необычно предсказуемый в долгоживущих проектах с большими командами, — поэтому он остаётся выбором по умолчанию в корпоративной серверной разработке.

Почему это важно

Виртуальная машина — причина, по которой Java всё ещё выбирают: зрелая среда выполнения со сборщиком мусора и JIT-компилятором, которую настраивают два десятилетия и которая работает на любой операционной системе и архитектуре. Код компилируется один раз и выполняется всюду, где есть подходящая среда выполнения, а программа, проработавшая недели, оптимизирована настолько, насколько это возможно. Однако плата — память и время запуска, а ещё язык, чья церемония — типы, видимость, проверяемые исключения — одним командам кажется тяжёлой, а другим проясняющей.

Что в этом треке

  1. Язык и JVM (05-backend-data/04-java/01-the-language-and-the-jvm) — что компилируется, что выполняется и как это исполняет виртуальная машина.
  2. Объекты и проектирование типов (05-backend-data/04-java/02-objects-and-type-design) — классы, интерфейсы, обобщения и давление, которое система типов оказывает на проектирование.
  3. Сборка и зависимости (05-backend-data/04-java/03-builds-and-dependencies) — инструменты сборки и экосистема зависимостей вокруг языка.
  4. Корпоративные серверные приложения (05-backend-data/04-java/04-enterprise-backends) — конвенции фреймворков, которые определили облик большинства серверных приложений на Java.

Предварительные требования

Нет.

Что читать дальше

  • Программирование на Python (05-backend-data/03-python-programming) — контраст с динамической типизацией и более частый выбор для сценариев.
  • Go (05-backend-data/05-go) — компилируемый язык, задуманный проще, с более быстрым запуском, и частый заменитель сервисов на JVM.
  • Серверная часть (05-backend-data/01-server-side) — место, где выполняется большая часть кода на Java.