етапі виконання, а не включаються в байт-коди. Як кажуть фахівці, відбувається динамічна компоновка (dynamicbinding). Це теж сильно зменшує обсяг скомпільованій.
Отже, на першому етапі програма, написана на мові Java, переводиться компілятором в байт-коди. Ця компіляція не залежить від типу якого-небудь конкретного процесора і архітектури якогось конкретного комп'ютера. Вона може бути виконана один раз відразу ж після написання програми. Байт-коди записуються в одному або декількох файлах, можуть зберігатися у зовнішній пам'яті або передаватися по мережі. Це особливо зручно завдяки невеликому розміру файлів з байт-кодами. Потім отримані в результаті компіляції байт-коди можна виконувати на будь-якому комп'ютері, що має систему, що реалізовує JVM. Так какреалізуется принцип Java «Writeonce, runanywhere» - «Написано один раз, виконується де завгодно».
Інтерпретація байт-кодів і динамічна компоновка значно уповільнюють виконання програм. Це не має значення в тих ситуаціях, коли байт-коди передаються по мережі, мережа все одно повільніше будь-якій інтерпретації, але в інших ситуаціях потрібно потужний і швидкий комп'ютер. Тому постійно йде удосконалення інтерпретаторів у бік збільшення швидкості інтерпретації. Розроблено JIT-компілятори (Just-In-Time), що запам'ятовують вже інтерпретовані ділянки коду в машинних командах процесора і просто виконують ці ділянки при повторному зверненні, наприклад, в циклах. Це значно збільшує швидкість повторюваних обчислень.
Крім реалізації JVM для виконання байт-кодів на комп'ютері ще потрібно мати набір функцій, що викликаються з байт-кодів і динамічно компонуються з байт-кодами. Цей набір оформляється у вигляді бібліотеки класів Java.
Фірма SUN Microsystems - творець технології Java - безкоштовно розповсюджує набір необхідних програмних інструментів для повного циклу роботи з цією мовою програмування: компіляції, інтерпретації, налагодження, що включає і багату бібліотеку класів, під назвою JDK (JavaDevelopmentKit).
Набір програм і класів JDK містить:
- компілятор javac з вихідного тексту в байт-коди; інтерпретатор java, що містить реалізацію JVM;
- полегшений інтерпретатор jre (в останніх версіях відсутня);
- програму перегляду аплетів appietviewer, заменяющую браузер;
- відладчик jdb;
- дізассемблер javap;
- програму архівації та стиснення jar;
- програму збору документації javadoc;
- програму javah генерації заголовків файлів мови С;
- програму javakey додавання електронного підпису;
- програму native2ascii, перетворюючу бінарні файли в текстові;
- програми rmic і rmiregistry для роботи з віддаленими об'єктами;
- програму serialver, визначальну номер версії класу;
- бібліотеки та заголовки «рідних» методів;
- бібліотекуклассовJava API (Application Programming Interface).
Крім JDK, компанія SUN окремо поширює ще й набір JRE (JavaRuntimeEnvironment) [4].
Набір програм і пакетів класів JRE містить все необхідне для виконання байт-кодів, у тому числі ін...