вності ділянок програми в машинних кодах.
інтерпретується, багатопотокових і динамічний. Скриптової природа мови дозволяє зробити фазу лінкування простий, інкрементальної і, отже, швидкою. Це різко скорочує цикл розробки і тестування програмних фрагментів.
багатопотікове дозволяє виконувати в рамках однієї програми кілька завдань одночасно. Це стає особливо актуально в сучасних розподілених додатках, коли процеси мережевого обміну можуть йти одночасно і асинхронно. При цьому програма продовжує реагувати на введення інформації користувачем без неприємних затримок.
багатопотікове підтримується на рівні мови - частина примітивів синхронізації вбудована в систему реального часу, а бібліотека містить базовий клас Thread. До того ж системні бібліотеки написані thread-safe, тобто всі вони можуть бути використані в многопотокових додатках.
Система забезпечує динамічну збірку програми. Класи підвантажуються по мірі необхідності, причому завантажені вони можуть бути з будь-якої точки мережі, що дозволяє зробити внесення змін у додатки прозорим для користувача. Користувач може бути впевнений, що завжди працює зі свіжою версією програми.
Система Java створювалася об'єктно-орієнтованої з самого початку. Об'єктно-орієнтована парадигма найбільш зручна при створенні програмного забезпечення типу клієнт-сервер, а також для організації розподілених обчислень.
Одна з рис, притаманних об'єктам, полягає в тому, що об'єкти зазвичай переживають процедуру, їх створює. Вони потім можуть переміщатися по мережі, зберігатися в базах даних і т.д.
Ідейними спадкоємцями Java є такі мови, як C + +, Eiffel, Smalltalk і Objective C. За винятком примітивних типів даних, практично все в мові є об'єктом.
Основні вимоги до об'єктно-орієнтованої системі:
- інкапсуляція - приховування реалізації за абстрактним інтерфейсом;
- поліморфізм-одне і те ж повідомлення, надіслане різних об'єктів, призводить до виконання різних операцій;
- успадкування-нові класи можуть успадковувати дані і функціональність вже існуючих класів;
- динамічне зв'язування - нові класи можуть з'являтися в системі звідки завгодно, у тому числі і з мережі. Необхідно мати можливість динамічно включати їх в систему.
Система Java призначена для створення програмного забезпечення, яке має бути інтелектуальним, гранично надійним і безпечним по безлічі параметрів. Особлива увага приділяється як ранній діагностиці можливих проблем, так і пізньої, під час виконання кодів.
Компіляція з мови Java передбачає жорстку перевірку початкових текстів, безліч помилок може бути виявлено вже на цьому етапі.
Одним з переваг мови С + + як строго тіпізованного мови є можливість раннього виявлення деяких категорій помилок. Проте багато в чому ця мова успадковує властивості С, дозволяючи порушувати вимоги строгого оголошення функцій і методів. Мова Java вимагає явного оголошення прототипів і не підтримує характерних для С неявних перетворень.
Значне число перевірок, вироблених компілятором, повторюються віртуальною машиною безпосередньо перед виконанням програми.
Найбільш істотна відмі...