Java

Java
Парадигма: об'єктно орієнтована, структурна, імперативна
Дата появи: 1990-ті
Дизайнер: Sun Microsystems
Система типізації: статична, сувора, безпечна
Під впливом від: Objective-C, C++, Smalltalk, Eiffel, C#
Вплинула на: C#, D, J#, Ada 2005

Джава (англ. Java) - об'єктно-орієнтована мова програмування, розроблена на початку 90-их компанією Sun Microsystems. У офіційній реалізації, Java програми компілюється в байткод, який компілюється в рідний машинний код при запуску. Sun Microsystems надає компілятор Java та віртуальну машину Java, які задовольняють специфікації Java Community Process, під ліцезією GNU General Public License.

Мова значно запозичила синтаксис із C і C++, але має простішу об'єктну модель і менше низькорівневих можливостей. Мова сценаріїв JavaScript має схожу із Java назву і синтаксис, але не пов'язана із Java.

Мова програмування Java зародилася в 1991 р. в лабораторіях компанії Sun Microsystems. Головним мотивом створення Java була потреба в мові програмування, яка б не залежала від платформи (тобто від архітектури) і яку можна було б використовувати для створення програмного забезпечення, яке вбудовується в різноманітні побутові електронні прилади, такі як мобільні засоби зв'язку, пристрої дистанційного керування тощо. Розробка першої робочої версії зайняла 18 місяців і вона мала назву «Oak», але 1995 р. проект був перейменований на «Java».

Найбільш цікавою властивістю є те, що програма на Java компілюється в байткод, який виконується віртуальною машиною (реалізація такої машини — своя для кожної платформи). Цим досягається можливість виконувати програмне забезпечення під будь-якою операційною системою, для якої реалізовано віртуальну машину.

Період становлення Java збігся у часі з розквітом міжнародної інформаційної служби World Wide Web. Ця обставина відіграла вирішальну роль у майбутньому Java, оскільки Web теж вимагала платформо-незалежних програм. Як наслідок, були зміщені акценти в розробці Sun з побутової електроніки на програмування для Інтернет.

Зміст

[ред.] Головні концепції

[ред.] Початкові цілі

У створенні мови Java було п'ять початкових цілей :[1]

  1. Мова має використовувати методологію об'єктно-орієнтованого програмування.
  2. Вона має дозволяти програмі запускатися на різних операційних системах без перекомпіляції.
  3. Має бути вбудована підтримка обчислювальних мереж.
  4. Має підтримуватися безпечний віддалений виклик коду.

[ред.] Незалежність від платформи

Незалежність від платформи означає, що застосунок, написаний на мові Java, працюватиме на будь-якій підтримуваній апаратній чи системній платформі без змін у початковому коді та перекомпіляції.

Цього можна досягти, компілюючи початковий Java код у байт код, спрощені машинні команди для платформи Java. Потім програму можна виконати на будь-якій платформі, що має встановлену віртуальну машину Java, яка інтерпретує байткод у код, пристосований до специфіки конкретної операційної системи і процесора. Зараз віртуальну машину Java підтримують більшість процесорів і операційних систем.

Перші реалізації мови використовували інтерпретовану віртуальну машину для досягнення портативності. Через це програми працювали повільніше, ніж програми, написані на C чи C++, і мова одержала репутацію «повільної». Тепер віртуальна машину має JIT компілятор, який компілює байт код у машинний при викоанні і в результаті програми працюють швидше.

[ред.] Об'єктність

На противагу C++, Java більш об'єктно-орієнтована. Всі дані і дії групуються в класи об'єктів. Виключенням з повної об'єктності (як скажімо в Smalltalk) є примітивні типи (int, float тощо).

У Java всі об'єкти є похідними від головного (він називається просто Object) об'єкту, з якого успадковує поведінку і властивості.

Хоча у C++ вперше стало доступне багаторазове успадкування, але у Java можливе тільки одинарне успадкування, завдяки чому виключається можливість конфліктів між властивостями, які передаються через базові класи.

[ред.] Безвідмовність і безпека

У намірах проектувальників Java мала замінити C++ — об'єктного наступника мови C. Проектувальники почали з аналізу властивостей C++, які є причиною найбільшого числа помилок, щоби створити просту, безпечну і безвідмовну мову програмування.

Java забезпечує багато, щоб ускладнити програмістові робити помилки. Перш за все Java має систему винятків або ситуацій, коли код програми зустрічається з неочікуваними труднощами, наприклад:

  • операції над елементом масиву поза його межами або порожньому елементі
  • читання з недоступного каталогу або неправильної адреси URL
  • ввід недопустимих даних користувачем

[ред.] Приклад програми

Програма, яка виводить «Hello, World!»:

 public class HelloWorld {
     public static void main(String[] args) {
         System.out.println("Hello, World!");
     }
 }

[ред.] Випуски

[ред.] Структура Java програми

Програми на Java утворені з визначень класів та інтерфейсів. Класи містять змінні та сталі, які утримують дані, методи, які виконують дії, та конструктори, які створююсть екземпляри класів — об'єкти. Дані можуть мати простий тип (наприклад байт, ціле число, символ) або бути посиланням на об'єкт. Мова Java є статично типізованою.

[ред.] Лексична структура

Java програми записуються в Юнікоді, також надається лексичне перетворення, яке дозволяє записувати символи Юнікоду керівними кодами Unicode за допомогою лише множини символів ASCII. Мова Java представляє текст послідовностями 16-бітний кодових одиниць, використовуючи кодування UTF-16. За винятком коментарів, ідентифікаторів та вмісту символьних та рядкових літералів, всі вхідні елементи програми на Java складаються із символів ASCII або відповідних їм керівних кодів Unicode.

[ред.] Типи даних

Java є суворо типізованою мовою, кожна змінна та вираз має тип, відомий на етапі компіляції.

Типи мови Java належать до двох категорій: прості (primitive) та вказівникові (reference). До простих типів належить бульовий тип та числові типи.

Числові типи складаються із цілих типів byte, short, int, long, char та дійсних типів float, double. Вказівникові типи складаються із класів, інтерфейсів, масивів. Значенням вказівникового типу є вказівник на об'єкт — екземпляр класу чи масиву. Рядки є об'єктами класу String.

[ред.] Цілі типи

тип мін. макс.
byte –27 27–1
short –215 215–1
int –231 231–1
long –263 263–1
char 0 216–1


[ред.] Дивіться також

[ред.] Ресурси інтернет

[ред.] Джерела


Комп'ютер Це незавершена стаття про комп'ютери.
Ви можете допомогти проекту, виправивши або дописавши її.

system wymiany linków system wymiany linków wymiana linkami tanie kredyty gotówkowe kreatyna Plaza 3 star hotel Los Angeles krynica noclegi Sejm Tyk