1,7K подписчиков
Здесь вы получите бесплатные руководства по Java, которые помогут вам изучить программирование на Java от начального до продвинутого уровня. Эти уроки написаны для начинающих. Базовый 1. История языка Java 2...
3 года назад
55 подписчиков
Байт-код Java: назначение, структура и использование

Байт-код Java — это промежуточное представление Java-кода, которое выполняется виртуальной машиной Java (JVM). При компиляции Java-программы компилятор Java (javac) преобразует ее в байт-код, представляющий собой набор инструкций, которые JVM может понять и выполнить. Этот байт-код является платформонезависимым, то есть одна и та же Java-программа может выполняться на различных устройствах и в различных операционных системах, следуя принципу “пиши один раз, выполняй везде” (WORA).

Особенности байт-кода Java
Байт-код Java является важнейшим элементом в сфере программирования на Java. Он служит связующим звеном между высокоуровневым Java-кодом и низкоуровневыми операциями, выполняемыми в виртуальной машине Java (JVM). Рассмотрим подробно, что такое байт-код Java, как он устроен и зачем необходим Java-программам.

Что такое байт-код Java?
Байт-код Java — это продукт процесса компиляции исходного Java-кода. Когда вы пишете Java-программу и компилируете ее, компилятор Java (javac) не преобразует код непосредственно в машинный. Вместо этого он переводит его в промежуточную форму, называемую байт-кодом. Этот байт-код представляет собой набор инструкций, которые не являются человекочитаемыми, как Java-код, но менее сложны, чем машинный код.

Структура байт-кода
Длина каждой инструкции в байт-коде Java равна одному байту (откуда и происхождение термина “байт-код”). Однако за некоторыми инструкциями следуют дополнительные байты, представляющие собой операнды для инструкций. Инструкции байт-кода, разработанные для компактности и эффективности, работают на основе стековой архитектуры. В этом их отличие от большинства физических архитектур процессоров, основанных на регистрах.

Вот более подробный обзор структуры байт-кода.


5 месяцев назад
55 подписчиков
🖥 Полезная статья про байт-код в Java

⏩Байт-код Java — это промежуточное представление Java-кода, которое выполняется виртуальной машиной Java (JVM). При компиляции Java-программы компилятор Java (javac) преобразует ее в байт-код, представляющий собой набор инструкций, которые JVM может понять и выполнить.
Этот байт-код является платформонезависимым, то есть одна и та же Java-программа может выполняться на различных устройствах и в различных операционных системах, следуя принципу “пиши один раз, выполняй везде” (WORA).

⏩Байт-код представляет собой набор инструкций, которые не являются человекочитаемыми, как Java-код, но менее сложны, чем машинный код.

⏩Длина каждой инструкции в байт-коде Java равна одному байту (откуда и происхождение термина “байт-код”). Однако за некоторыми инструкциями следуют дополнительные байты, представляющие собой операнды для инструкций. Инструкции байт-кода, разработанные для компактности и эффективности, работают на основе стековой архитектуры. В этом их отличие от большинства физических архитектур процессоров, основанных на регистрах.

Поглядим на примере:
int a = 5;
int b = 10;
int sum = a + b;
При компиляции эти строки Java-кода преобразуются в серию инструкций байт-кода, которые при просмотре с помощью такого инструмента, как javap, могут выглядеть следующим образом:
0: iconst_5
1: istore_1
2: bipush 10
4: istore_2
5: iload_1
6: iload_2
7: iadd
8: istore_3

Вообще, тема очень интересная, советую глянуть статью

3 месяца назад