Що таке Java Virtual Machine, або Джава - це вам не Ява! .. Частина 1
Що таке технологія Java
Технологія Java була створена як інструмент програмування в компанії Sun Microsystems в 1991 р в рамках невеликого закритого дослідного проекту, що отримав кодову назву «Green» («Зелений проект»).
«Зелена команда» з 13 інженерів і розробників під керівництвом Джеймса Гослінга (James Gosling) протягом півтора років працювала цілодобово безперервно в окремому офісі на Sand Hill Road в м Менло Парк (Каліфорнія- знову Силіконова долина!), Що не інформуючи про свою роботу компанію Sun.
Інженери «Зеленої команди» намагалися передбачити майбутню «нову хвилю» в програмуванні і підготуватися до неї. Спочатку вони виходили з припущення, що однією з основних тенденцій розвитку буде зближення між цифрової споживчої технікою та комп'ютерами.
Результатом цієї роботи став машинно-незалежний мова програмування, що отримав кодову назву «Oak» (Дуб).
Щоб продемонструвати, як нову мову програмування може в майбутньому використовуватися в цифровій техніці, «Зелена команда» створила домашній портативний інтерактивний контролер для цифрового кабельного телебачення. Але тоді ця ідея була занадто новаторською, і цифрове кабельне телебачення не було готове до того різкого прориву, який пропонувала технологія Java.
Однак новаторство технології Java виявилося затребуваним для Інтернету, і на першій офіційній презентації технології Java в 1995 р команда Гослінга змогла оголосити, що технологія Java буде використана в інтернет-браузері Netscape Navigator.
Нині платформу Java використовують понад 4 млн. Розробників програмного забезпечення. Вона використовується у всіх основних сферах діяльності по всьому світу і застосовується в самих різних пристроях, комп'ютерах і мережах у всіх технологіях програмування.
В цілому універсальність, ефективність, безпека і сумісність з різними платформами роблять технологію Java ідеальним інструментом для мережевих технологій. Тому сьогодні вона використовується більш ніж у 2,5 млрд. Пристроїв, серед яких:
• більше 700 млн. ПК;
• більше 1 млрд. Мобільних телефонів і інших портативних пристроїв;
• 1,25 млрд. Смарт-карт;
• а також телеприставки, принтери, веб-камери, ігри, автомобільні системи навігації, ігрові автомати, медичне обладнання, паркувальні автомати і т. Д.
В даний час технологію Java можна зустріти практично в будь-яких мережах і пристроях - від Інтернету і суперкомп'ютерів до портативних комп'ютерів і мобільних телефонів, від пристроїв моделювання біржових торгів до домашніх ігрових приставок і кредитних карт.
Чому розробники програмного забезпечення вибирають технологію Java
Мова програмування Java всебічно допрацьовували, розширювали, тестували і перевіряли на практиці більше 4 млн. Розробників програмного забезпечення.
Закінчена, надзвичайно надійна і універсальна технологія Java неоціненна для розробників програмного забезпечення тим, що вона дозволяє їм:
• писати програмне забезпечення на одній платформі і запускати його практично на будь інший;
• створювати програми для роботи у веб-браузерах і веб-службах;
• розробляти серверні додатки для інтернет-форумів, магазинів, опитувань, обробки HTML-форм і інших.;
• створювати максимально пристосовані для вимог користувача програми та служби, комбінуючи різні Java-модулі;
• писати потужні та ефективні програми для мобільних телефонів, віддалених процесорів, недорогих споживчих товарів і практично для будь-яких цифрових пристроїв.
Що таке Java Virtual Machine
Java Virtual Machine (Java VM, JVM) - віртуальна машина Java - основна частина виконуючою системи Java, так званої Java Runtime Environment (JRE). Віртуальна машина Java інтерпретує і виконує байт-код Java, попередньо створений з початкового тексту Java-програми компілятором Java.
У 1996 р компанія Sun випустила першу версію документа «Блакитна книга JVM», в якому описана специфікація віртуальної машини Java, що став де-факто галузевим стандартом платформи Java. Завдяки цьому документу з'явилися альтернативні реалізації JVM, що є «розробками з чистого аркуша» (англ. Clean room design). Як приклад можна привести Kaffe.
Починаючи з версії J2SE 5.0 зміни в специфікації JVM виробляються відповідно до формалізованими побажаннями зацікавлених сторін. Процес внесення змін до специфікації JVM називається Java Community Process.
Коротка Java-термінологія
• Віртуальна машина (Virtual machine) - абстрактне обчислювальний пристрій, який може бути реалізовано різними способами: апаратно або програмно. Компіляція в набір команд віртуальної машини відбувається майже так само, як і компіляція в набір команд мікропроцесора.
• Java-платформа (Java Platform) - віртуальна машина Java і стандартні класи складають Java-платформу. Java-платформа надає програмам уніфікований інтерфейс незалежно від операційної системи, на якій вони працюють.
• Java Remote Method Invocation (JRMI) - інтерфейс виклику віддалених методів. Розподілена об'єктна модель, яка визначає, яким чином здійснюється виклик віддалених методів, які працюють на інший віртуальній машині Java.
• Java Runtime Environment (JRE) - середовище виконання Java. Підмножина Java Development Kit, призначене для кінцевих користувачів. JRE складається з віртуальної машини Java (JVM), стандартних класів Java і допоміжних файлів.
• Java Virtual Machine (JVM) - віртуальна машина Java, частина середовища виконання Java, що виконує інтерпретацію Java байт-коду. Java Virtual Machine специфицируется набором команд байт-коду, набором регістрів, стеком, складальником сміття і простором зберігання методів.
• Java байт-код (Java bytecode) - машинно-незалежний код, який генерує Java-компілятор. Байт-код виконується Java-інтерпретатором. Віртуальна машина Java повністю стековая: не вимагається складна адресація комірок пам'яті і велика кількість регістрів. Тому команди JVM короткі, більшість з них має довжину 1 байт, чому команди JVM називають байт-кодами (bytecodes), хоча є команди довжиною 2 і 3 байти (середня довжина команди складає 1,8 байта).
Програма, написана мовою Java, переводиться компілятором в байт-код. Байт-код записується в одному або декількох файлах, може зберігатися у зовнішній пам'яті або передаватися по мережі. Це особливо зручно завдяки невеликому розміру файлів з байт-кодом. Отриманий в результаті компіляції байт-код можна виконувати на будь-якому комп'ютері, що має систему, що реалізовує JVM (в не залежності від типу якого-небудь конкретного процесора і архітектури ПК). Так реалізується принцип Java: «Write once, run anywhere» - «Написано одного разу, виконується де завгодно».
• Java-аплети (Java applets) - Java-додатки, доступ до яких можна отримати з веб-браузера.