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?».


Комментарии (350)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Адольф Уровень 1
14 октября 2025
Адольф Уровень 1
14 октября 2025
Anonymous #3684026 Уровень 2
11 октября 2025
рада за амиго как за своего сына
Isa Уровень 1
6 августа 2025
Всем привет! Приглашаю вас на свой канал, где вы найдете: 📌 Ресурсы по Java Core, Git, SQL, Apache Maven, HTTP.Servlets и JUnit / Mockito 📌 Отзыв о JavaRush (Я его уже прошел около года назад и написал про него отзыв) 📌 Кучу практических задач по Java и SQL 📌 Мой личный роадмап для людей, которые только только начали свое обучение в Java 📌 Также у этого канала есть чат, где собираются единомышленники и опытные ребята, готовые помочь друг другу. Если у вас возникают вопросы по ходу обучения, не стесняйтесь, заходите и задавайте! Удачи всем в обучении, ребята! 🚀
Anonymous #3584501 Уровень 3
19 мая 2025
0/
tov.Sergei Уровень 6
3 мая 2025
Авторы курса не хотят актуализировать данные по поводу популярности java?
Nikita Malov Уровень 2
21 мая 2025
Уже на 4 месте, на 1 месте Pyton
Geek Уровень 1
2 апреля 2025
Всем привет! Если у вас возникают какие-либо непонятные моменты из лекций, обязательно загляните на этот телеграм-канал (Кликай). Автор канала очень подробно расписал материалы, которые нужны абсолютно каждому новичку для изучения Java. Это настоящая находка для всех, кто хочет быстро и эффективно начать освоение языка программирования. На канале вы найдете рекомендации по тому, как и где лучше изучать Java, а также советы и ресурсы для дополнительной практики. Это настоящая сокровищница знаний и полезных ссылок! Но это еще не всё! У этого канала есть чат (Кликай), где собираются единомышленники и опытные ребята, готовые помочь друг другу. Если у вас возникают вопросы по ходу обучения, не стесняйтесь, заходите и задавайте! Более тысячи человек уже обучаются по этим ресурсам. Присоединяйтесь к ним и вы! Удачи всем в обучении, ребята! 🚀
Oreshkin Andrey Уровень 5
31 марта 2025
Самый популярный язык программирования на сегодня, по данным TIOBE, — Python. Он держится на первом месте более пяти лет, а в 2020 и 2021 годах стал языком года по версии рейтинга.
Сергей Сак Уровень 16
3 апреля 2025
Первый комментарий к этой лекции датируется январем 2020 года. То есть в лекции используются данные за 2019 год (возможно даже не конец года).
gloowl Уровень 2
26 июля 2025
Не стоит всерьёз воспринимать рейтинг TIOBE. Только если по-приколу.
Лука Уровень 2
26 января 2025
рейтинг тиобе просто собирает статистику поисковых запросов, ссылаться на него это кринж кринжовый 🤡
Адель Уровень 4
23 января 2025
Ура, Амиго теперь круто выглядит)