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

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

Открыта

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Верховный жрец в Бинарного культа
27 февраля, 11:33
пролетарий умственного труда
hidden #6452939
Уровень 2
10 декабря 2025, 06:48
Если просто: компьютер вовсе не понимает наш код. Компьютер умеет исполнять лишь простейшие команды(он понимает только двоичный код). Для того, чтобы компьютер понял наш написанный код, используется компилятор. Компилятор — программа, которая переводит наш написанный код в понятный код для компьютера. Однако, Java - мультиплатформенный язык программирования. Написав программу для телефона, нам не нужно отдельно оптимизировать эту программу для компьютера, например. Это уже сделают за нас. Короче: у нас есть программа. Компилятор, вместо того, чтобы напрямую компилировать нашу программу в двоичный код(сразу же), вместо этого, компилирует программу в байт-код(такой промежуточный код). А вот JVM уже, понимая байт-код, компилирует программу в машинный код, код, который понятен машине.
Alisa Dvornikova
Уровень 3
8 апреля, 10:47
хорошо, что вы есть)
Роман Зарубин
Уровень 13
19 ноября 2025, 13:59
Делаю
Bogdan
Уровень 0
15 октября, 10:10
Delay 0.01
Anonymous #6421280
Уровень 2
14 ноября 2025, 18:41
ураааааааа, Амиго спасён🤩
Адольф
Уровень 1
14 октября 2025, 04:07
Адольф
Уровень 1
14 октября 2025, 04:07
Anonymous #3684026
Уровень 2
11 октября 2025, 18:23
рада за амиго как за своего сына
Anonymous #3584501
Уровень 3
19 мая 2025, 13:47
0/
tov.SrgРаботает в МЧС
3 мая 2025, 12:39
Авторы курса не хотят актуализировать данные по поводу популярности java?
Nikita Malov
Уровень 2
21 мая 2025, 20:01
Уже на 4 месте, на 1 месте Pyton
Oreshkin Andrey
Уровень 3
31 марта 2025, 22:33
Самый популярный язык программирования на сегодня, по данным TIOBE, — Python. Он держится на первом месте более пяти лет, а в 2020 и 2021 годах стал языком года по версии рейтинга.
Сергей Сак
Уровень 16
3 апреля 2025, 12:14
Первый комментарий к этой лекции датируется январем 2020 года. То есть в лекции используются данные за 2019 год (возможно даже не конец года).
gloowl
Уровень 2
26 июля 2025, 10:55
Не стоит всерьёз воспринимать рейтинг TIOBE. Только если по-приколу.