JavaRush /Курсы /Java Syntax Pro /Компилятор и байт-код

Компилятор и байт-код

Java Syntax Pro
1 уровень , 5 лекция
Открыта

1. Java – самый популярный язык программирования

А вы знали, что Java — самый популярный в мире язык программирования?

Согласно рейтингу TIOBE, язык программирования Java используют более 17% всех программистов мира. На втором месте идет C с 16%. А 20 лет назад, когда язык Java только появился, безоговорочным лидером был С++, доля которого сейчас — меньше 7%.

Язык Java появился в середине 90-х годов 20-го века и очень быстро набрал популярность. Программисты тысячами переходили с С++ на Java. Что только лишний раз подтверждает, что Java — это очень крутой язык программирования.

Так что же в нем такого крутого? Какие фишки добавили в него создатели?

Вы очень удивитесь, если сравните язык Java и язык С++: Java очень похож на сильно обрезанный С++!

Да, язык Java — это в какой-то мере сильно урезанный С++. И если в С++ что-то можно сделать 20-ю способами, то в Java это можно сделать только одним способом. И в чем же тут преимущество, спросите вы?

Все дело в том, что современные программы очень большие, и часто программисты до 90% времени тратят на то, чтобы разбираться в чужом коде. И только 10% — на написание нового кода. Так что да, простота — это преимущество.


2. Java-компилятор

Кстати, вы не раз еще услышите, что неоспоримое преимущество Java над другими языками — это мультиплатформенность. Что же это такое и с чем его едят? Начнем издалека.

Дело в том, что компьютер умеет исполнять только простейшие команды.

Для собак есть команды «Рядом», «Лапу» и другие, слыша которую собака делает что-то важное. У компьютера роль таких команд выполняют числа: каждая команда закодирована некоторым числом (его еще называют машинным кодом).

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

Обычно программист пишет программу на языке программирования, а затем запускает компилятор, который на основе написанных программистом файлов с кодом программы делает один файл с машинным кодом — окончательную (скомпилированную) программу.

  • Программа на языке C++
  • Компилятор
  • Программа, состоящая из машинных кодов
Этапы компиляции для языка C++

Получившаяся в итоге программа сразу может выполняться на компьютере. Минус такого подхода в том, что код полученной программы сильно зависит от процессора и операционной системы. Программа, скомпилированная под Windows, не будет работать на телефоне с Android.

Если вы написали программу под Android, то на операционной системе Windows она не запустится!

Но у Java гораздо более инновационный подход.

  • Программа на языке Java
  • Java‑компилятор
  • Программа, состоящая из специальных независимых кодов (байт‑код)
  • Java VM
  • Программа, состоящая из машинных кодов
Этапы компиляции для языка Java

Компилятор Java не компилирует все классы в одну программу из машинных кодов. Вместо этого он компилирует каждый класс по отдельности, и не в машинные коды, а в специальный промежуточный код (байт-код). Компиляция в машинный код выполняется при запуске программы.

А кто же компилирует программу в машинный код при ее запуске?

Для этого есть специальная программа под названием JVM (Java Virtual Machine) — Виртуальная Машина Java. Сначала запускают ее, а затем — программу, состоящую из байт-кода. А уже JVM перед выполнением нужной программы компилирует ее в машинный код.

Это очень мощный ход и одна из причин тотального доминирования Java.


3. Области доминирования Java

Благодаря вышеописанным преимуществам, программы, написанные на Java, могут выполняться практически на любых устройствах — компьютерах, телефонах, банкоматах, тостерах, банковских карточках.

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

  1. Enterprise: тяжелые серверные приложения для банков, корпораций, инвестфондов и т.д.
  2. Mobile: мобильная разработка (телефоны, планшеты), благодаря Android.
  3. Web: лидирует PHP, но и Java держит солидный кусок рынка.
  4. Big Data: распределенные вычисления в кластерах из тысяч серверов.
  5. Smart Devices: программы для умного дома, электроники, холодильников с выходом в интернет.

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

Чем больше вы будете программировать на Java, тем больше будете находить ответов на вопрос «Почему именно Java?».


Комментарии (353)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Nemo Уровень 37
27 февраля 2026
пролетарий умственного труда
hidden #6452939 Уровень 2
10 декабря 2025
Если просто: компьютер вовсе не понимает наш код. Компьютер умеет исполнять лишь простейшие команды(он понимает только двоичный код). Для того, чтобы компьютер понял наш написанный код, используется компилятор. Компилятор — программа, которая переводит наш написанный код в понятный код для компьютера. Однако, Java - мультиплатформенный язык программирования. Написав программу для телефона, нам не нужно отдельно оптимизировать эту программу для компьютера, например. Это уже сделают за нас. Короче: у нас есть программа. Компилятор, вместо того, чтобы напрямую компилировать нашу программу в двоичный код(сразу же), вместо этого, компилирует программу в байт-код(такой промежуточный код). А вот JVM уже, понимая байт-код, компилирует программу в машинный код, код, который понятен машине.
Alisa Dvornikova Уровень 3
8 апреля 2026
хорошо, что вы есть)
Роман Зарубин Уровень 8
19 ноября 2025
Делаю
Anonymous #6421280 Уровень 2
14 ноября 2025
ураааааааа, Амиго спасён🤩
Адольф Уровень 1
14 октября 2025
Адольф Уровень 1
14 октября 2025
Anonymous #3684026 Уровень 2
11 октября 2025
рада за амиго как за своего сына
Anonymous #3584501 Уровень 3
19 мая 2025
0/
tov.Srg Уровень 4
3 мая 2025
Авторы курса не хотят актуализировать данные по поводу популярности java?
Nikita Malov Уровень 2
21 мая 2025
Уже на 4 месте, на 1 месте Pyton
Oreshkin Andrey Уровень 5
31 марта 2025
Самый популярный язык программирования на сегодня, по данным TIOBE, — Python. Он держится на первом месте более пяти лет, а в 2020 и 2021 годах стал языком года по версии рейтинга.
Сергей Сак Уровень 16
3 апреля 2025
Первый комментарий к этой лекции датируется январем 2020 года. То есть в лекции используются данные за 2019 год (возможно даже не конец года).
gloowl Уровень 2
26 июля 2025
Не стоит всерьёз воспринимать рейтинг TIOBE. Только если по-приколу.