Скачиваний:
62
Добавлен:
05.07.2021
Размер:
94.13 Кб
Скачать

Байт-код

Компилируемый язык — это такой язык, что программа, будучи скомпилированной, содержит инструкции целевой машины; этот машинный код непонятен людям. Примерами компилируемых языков являются C, C++, Erlang, Haskell и более современные языки, такие как Rust и Go. Интерпретируемый же язык — это такой, в котором инструкции не исполняются целевой машиной, а считываются и исполняются другой программой. Примерами интерпретируемых языков являются PHP, Perl, Ruby и Python.

Байткод-языки — это такие языки, которые используют для исполнения кода как компиляцию, так и интерпретацию. Java и фреймворк .NET — это типичные примеры байткод-языков. На самом деле, Java Virtual Machine (JVM) — это настолько популярная виртуальная машина для интерпретации байткода, что на ней работают реализации нескольких языков.

Добиться безопасности и переносимости программ по сети позволяет генерируемый компилятором Java код, не являющийся исполняемым. Такой код называется байт-кодом. Это оптимизированный набор команд, предназначенных для выполнения в исполняющей системе Java, называемой виртуальной машиной Java (Java Virual Machine - JVМ). Виртуальная машина Java, по существу, представляет собой интерпретатор байт-кода.

Схожие качества и различия Java и С++

  • указатели ( в Java нет);

  • поддержка деструкторов ( в С++ явно создавали, если в конструкторе был оператор new. В Jave метод finalize вызывался перед тем, как удалить.)

  • аргументы по умолчанию (в С++ была возможность передавать, в Jave static конструкции и методы);

  • множественное наследование (множественное наследование классов  в С++ поддерживается, в Java - нет. Но множественное наследование интерфейсов (поведения) поддерживается.);

  • обработка исключительных ситуаций ( и там, и там. В Jave добавлено ключевое слово  finally, позволяющее описать блок кода, который должен выполниться независимо от того, произошло ли исключение. Также добавлен try с ресурсами, позволяющий реализовать стратегию ARM (automatic resource management);

  • перегрузка методов поддерживается и там, и там; 

  • добавлен отдельный вид комментариев (документирующий);

  • все конструкции ооп поддерживаются в Jave.

Особенности языка Java

Особенности языка Java:

  • Простота. Java обладает лаконичными, тесно связанными друг с другом и легко усваиваемыми языковыми конструкциями.

  • Безопасность. Java предоставляет безопасные средства для создания интернет-приложений.

  • Переносимость. Программы на Java мог выполняться в любой среде, для которой имеется исполняющая система Java.

  • Объектно-ориентированный характер. В Java воплощена современная философия объектно-ориентированного программирования. 

  • Надежность. Java уменьшает вероятность появления ошибок в программах благодаря строгой типизации переменных и выполнению соответствующих проверок во время выполнения.

  • Многопоточность. Java обеспечивает встроенную поддержку многопоточного программирования.

  • Архитектурная независимость. Язык Java не привязан к конкретному типу вычислительной машины или архитектуре операционной системы. 

  • Интерпретируемость. Java предоставляет байт-код, обеспечивающий независимость от платформы.

  • Высокая производительность. Байт-код Java максимально оптимизируется для повышения производительности.

  • Распределенность. Язык Java проектировался с учетом его применения в распределенной среде Интернета.

  • Динамичность. Программы на Java содержат значительную долю информации, используемой во время выполнения для проверки и разрешения доступа к объектам.