Movatterモバイル変換


[0]ホーム

URL:


Перейти до вмісту
Вікіпедія
Пошук

Java

Матеріал з Вікіпедії — вільної енциклопедії.
У Вікіпедії є статті про інші значення цього терміна:JLS (значення).
Java
Парадигмаоб'єктно-орієнтована,структурна,імперативна
Дата появи1995
ТворціSun Microsystems,Oracle
РозробникOracle Corporation
Останній релізJava SE 21.0.1 (17 жовтня2023; 2 роки тому (2023-10-17))
Система типізаціїстатична, сувора, безпечна, називна, явна
Основні реалізаціївіртуальні машини Java
Під впливом відObjective-C,C++,Smalltalk,Eiffel[1],Ada 83,Mesa,[2]Modula-3[3]
Вплинула наC#,D,J#,Ada 2005,ECMAScript,Groovy,PHP,Scala,JavaScript
Операційна системаМультиплатформна
ЛіцензіяGNU General Public License /Java Community Process
Звичайні розширення файлів.java, .class, .jar, .jad або.jmod Редагувати інформацію у Вікіданих
ВебсайтОфіційна сторінка(англ.)

Java (вимовляєтьсяДжава[4]) —об'єктно-орієнтованамова програмування, випущена 1995 року компанією«Sun Microsystems» як основний компонент платформи Java. З 2009 року мовою займається компанія«Oracle», яка того року придбала «Sun Microsystems». В офіційній реалізації Java-програмикомпілюються убайт-код, який при виконанні інтерпретуєтьсявіртуальною машиною для конкретної платформи.

«Oracle» надає компілятор Java тавіртуальну машину Java, які задовольняють специфікаціїJava Community Process, під ліцензієюGNU General Public License.

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

Java вплинула на розвитокJ++[en], що розроблялась компанією«Microsoft». Роботу над J++ було зупинено через судовий позов «Sun Microsystems», оскільки ця мова програмування була модифікацією Java. Пізніше в новій платформі «Microsoft».NET випустилиJ#, щоб полегшити міграцію програмістів J++ або Java на нову платформу. З часом нова мова програмуванняС# стала основною мовою платформи, перейнявши багато чого з Java. J# востаннє включався в версіюMicrosoft Visual Studio 2005. Мова сценаріївJavaScript має схожу із Java назву і синтаксис, але не пов'язана із Java.

Назва

[ред. |ред. код]

Спочатку мова називалася Oak («дуб») і розробляласяДжеймсом Гослінгом для програмування побутових електронних пристроїв. Згодом вона була перейменована в Java і стала використовуватися для написання клієнтських застосунків і серверного програмного забезпечення. Названа на честь марки кави Java, яка, в свою чергу, отримала найменування однойменного острова (Ява), тому на офіційній емблемі мови зображена чашка з паркою кавою. Існує й інша версія походження назви мови, пов'язана з алюзією на каво-машину як приклад побутового устаткування, для програмування якого спочатку мова створювалася.

Історія

[ред. |ред. код]
Дюк, маскот Java
Джеймс Гослінг, творець Java, фото 2008 року

Мова програмування Java зародилася в1991 р. в лабораторіях компаніїSun Microsystems. Розробку проєкту започаткувавДжеймс Ґослінґ, сам проєкт мав назву «Green» (Зелений). Створення першої робочої версії, яка мала назву«Oak» (дуб), зайняло 18 місяців. Оскільки виявилось, що ім'я Oak уже використовувалось іншою фірмою, то в результаті тривалих суперечок навколо назви нової мови з-поміж ряду запропонованих було вибрано назвуJava[5], у1995 р. мову було офіційно перейменовано[6].

Головним мотивом створення Java була потреба в мові програмування, яка б не залежала від платформи (тобто відархітектури) і яку можна було б використовувати для створенняпрограмного забезпечення, що вбудовується в різноманітні побутові електронні прилади, такі як мобільні засоби зв'язку, пристрої дистанційного керування тощо.

Досить скоро майже всі найпопулярніші тогочаснівебоглядачі отримали можливість запускати «безпечні» для системи Java-аплети всередині вебсторінок. У грудні 1998 р. Sun Microsystems випустила Java 2 (спершу під назвоюJ2SE 1.2), де було реалізовано декілька конфігурацій для різних типів платформ. Наприклад, J2EE призначалася для створення корпоративнихзастосунків, а значно урізана J2ME для приладів з обмеженими ресурсами, таких як мобільні телефони. У 2006 році в маркетингових цілях версії J2 було перейменовано уJava EE,Java ME таJava SE відповідно.

13 листопада2006 року Sun випустили більшу частину Java як вільне та відкрите програмне забезпечення згідно з умовамиGNU General Public License (GPL).8 травня2007 корпорація закінчила процес, в результаті якого всі початкові коди Java були випущенні під GPL, за винятком невеликої частини коду, на який Sun не мала авторського права.

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

В 2023 році, у категорії найпопулярніших мов програмування серед IT-спеціалістів згідно рейтингуIEEE Spectrum, який охоплював 59 мов програмування, топ-5 виглядав так: Python, Java, C++, C, JavaScript[7].

Головні концепції

[ред. |ред. код]

Початкові цілі

[ред. |ред. код]

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

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

Платформа

[ред. |ред. код]

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

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

Стандартні бібліотеки забезпечують загальний спосіб доступу до таких платформозалежних особливостей, як обробкаграфіки,багатопотоковість та роботу змережами. У деяких версіях задля збільшення продуктивності JVM байт-код можна компілювати у машинний код до або під час виконання програми.

Основна перевага використаннябайт-коду — це портативність. Тим не менш, додаткові витрати на інтерпретацію означають, що інтерпретовані програми будуть майже завжди працювати повільніше, ніж скомпільовані у машинний код, і саме тому Java одержала репутацію «повільної»[джерело?] мови. Проте, цей розрив суттєво скоротився після введення декількох методів оптимізації у сучасних реалізаціях JVM.

Одним із таких методів єjust-in-time компіляція (JIT), що перетворює байт-код Java у машинний під час першого запуску програми, а потім кешує його. У результаті така програма запускається і виконується швидше, ніж простий інтерпретований код, але ціною додаткових витрат на компіляцію під час виконання. Складніші віртуальні машини також використовують динамічну рекомпіляцію, яка полягає в тому, що віртуальна машина аналізує поведінку запущеної програми й вибірково рекомпілює та оптимізує певні її частини. З використанням динамічної рекомпіляції можна досягти більшого рівня оптимізації, ніж за статичної компіляції, оскільки динамічний компілятор може робити оптимізації на базі знань про довкілля періоду виконання та прозавантажені класи. До того ж він може виявляти так звані гарячі точки (англ.hot spots) — частини програми, найчастіше внутрішні цикли, які займають найбільше часу при виконанні. JIT-компіляція та динамічна рекомпіляція збільшує швидкість Java-програм, не втрачаючи при цьому портативності.

Існує ще одна технологія оптимізації байткоду, широко відома як статична компіляція, або компіляціяahead-of-time (AOT). Цей метод передбачає, як і традиційні компілятори, безпосередню компіляцію у машинний код. Це забезпечує хороші показники в порівнянні з інтерпретацією, але за рахунок втрати переносності: скомпільовану таким способом програму можна запустити тільки на одній, цільовій платформі.

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

Об'єктність

[ред. |ред. код]

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

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

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

Безпека

[ред. |ред. код]

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

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

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

Одна з особливостей концепціївіртуальної машини полягає в тому, що помилки (виключення) не призводять до повного краху системи. Крім того, існують інструменти, які «приєднуються» до середовища періоду виконання і кожен раз, коли сталося певне виключення, записують інформацію з пам'яті длязневадження програми. Ці інструментиавтоматизованої обробки виключень[en] надають основну інформацію щодо виключень в програмах на Java.

Проте мову програмування Java не рекомендується використовувати в системах, збій в роботі яких може призвести до смерті, травм чи значних фізичних ушкоджень (наприклад, програмне забезпечення для керування атомними електростанціями, польотами, систем життєзабезпечення чи систем озброєння) через ненадійність програм, написаних на мові програмування Java (пункт ліцензії Microsoft 7.7.h.[10]).

Автоматичне керування пам'яттю

[ред. |ред. код]
Див. також:Збирання сміття

Java використовує автоматичний збирач сміття (GC - Garbage Collector) для керування пам'яттю під час життєвого циклу об'єкта. Програміст вирішує, коли створювати об'єкти, а віртуальна машина відповідальна за звільнення пам'яті після того, як об'єкт стає непотрібним. Коли до певного об'єкта вже не залишається посилань, збирач сміття може автоматично прибирати його із пам'яті. Проте, витік пам'яті все ж може статися, якщо код, написаний програмістом, має посилання на вже непотрібні об'єкти, наприклад на об'єкти, що зберігаються у діючих контейнерах.

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

Java не має підтримки вказівників у стилі C/C++. Це зроблено задля безпеки й надійності, аби дозволити збирачу сміття переміщувати вказівникові об'єкти.

Приклад програми

[ред. |ред. код]

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

publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println("Hello, World!");}}

Програма, яка читає один рядок тексту з клавіатури та виводить його на екран:

publicclassReadData{publicstaticvoidmain(Stringargs[])throwsException{Stringline="";charc;while((c=(char)System.in.read())!=-1&&c!='\n')line+=c;System.out.println(line);}}

Випуски

[ред. |ред. код]
Докладніше:Історія версій Java
  • JDK 1.0 (23 січня1996)
  • JDK 1.1 (19 жовтня1997) — додановнутрішні класи,JavaBeans,JDBC,RMI, перероблено подіїAWT
  • J2SE 1.2(Playground)4 грудня1998 — поділ на 3 редакції: J2SE (Java 2 Platform, Standard Edition), J2EE (Java 2 Platform, Enterprise Edition), J2ME (Java 2 Platform, Micro Edition),strictfp,reflection,Swing,JIT compiler,Collections
  • J2SE 1.3(Kestrel)8 травня2000
  • J2SE 1.4.0(Merlin)13 лютого2002
  • J2SE 5.0 (1.5.0)(Tiger)29 вересня2004 — здійснено істотну доробку мови. Додано ряд елементів, наприклад, цикл for each, об'єктне представлення простих типів та ін. Також змінено принцип нумерації версій.
  • Java SE 6 (1.6.0)(Mustang)11 грудня2006[1][Архівовано 4 липня 2007 уWayback Machine.]
  • Java SE 7 (1.7.0)(Dolphin)28 липня2011
  • Java SE 8 (1.8.0) (неформальна назваSpider)18 березня2014 — серед іншого додано підтримку лямбда-виразів[11].
  • Java SE 9 —21 вересня2017. З цього року проєкт перейшов на випуск нової версії платформи що 6 місяців (кожного березня, та кожного вересня).
  • Java SE 10 —20 березня2018. Цей реліз став релізом з новими функціями (англ.feature release) та прийшов на заміну релізу 9[12].
  • Java SE 11 —25 вересня2018 вийшов реліз з тривалою підтримкою (англ.long-term support, LTS)[13].
  • Java 14 —19 березня2020 року була представлена версія для розробників. Ця версія увібрала в себе 16 пропозицій до покращення (англ.Java enhancement proposals). Було поліпшено взаємодію з кодом на C та C++[14].
  • Java 15 - 15 вересня2020.
  • Java 16 - 16 березня2021.
  • Java 17 (17.0.5) - 18 жовтня2022 вийшла версія.
  • Java 19 (19.0.1) - реліз 18 жовтня2022.

Останні релізи

[ред. |ред. код]
  • 17 січня2023- версії 19.0.2, 17.0.6, 11.0.18, 8u361.
  • 21 березня2023 -перша версія Java 20 ('Feature 20').
  • 19 вересня2023 -перша версія Java 21 (21.0.1).
  • 17 жовтня2023 -остання найновіша версія Java 21 (21.0.2).

Структура Java-програми

[ред. |ред. код]

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

Лексична структура

[ред. |ред. код]

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

Типи даних

[ред. |ред. код]

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

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

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

Прості типи даних

[ред. |ред. код]
ТипДовжина (в байтах)Діапазон або набір значень
booleanне визначеноtrue, false
byte1−128..127
char20..216−1, або 0..65535
short2−215..215−1, або −32768..32767
int4−231..231−1, або −2147483648..2147483647
long8−263..263−1, або приблизно −9.2·1018..9.2·1018
float4-(2-2−23)·2127..(2-2−23)·2127, або приблизно −3.4·1038..3.4·1038, а також{\displaystyle -\infty },{\displaystyle \infty }, NaN
double8-(2-2−52)·21023..(2-2−52)·21023, або приблизно −1.8·10308..1.8·10308, а також{\displaystyle -\infty },{\displaystyle \infty }, NaN

Критика

[ред. |ред. код]
Докладніше:Критика Java

Оскільки Java програми виконуються віртуальною машиною Java, то це призводить до дещо нижчої швидкодії, порівняно з самого початку скомпільованими у машинний код програмами (наприклад, написаними на С++). Проте за останнє десятиліття розробники віртуальної машини значно пришвидшили цей процес, тож в даний час програми на Java не надто поступаються аналогам на С++. Іншою проблемою Java є те, що для низькорівневого програмування (для роботи з апаратним забезпеченням) все ж необхідно використовувати модулі написані на інших більш пристосованих для цього мовах програмування (той же С++). Для стандартних задач, як то робота із портами комп'ютера, для Java уже існують готові сторонні native-бібліотеки. Програми, які використовують платформно залежні модулі уже не є настільки портабельними і потребують, щоб дані модулі були реалізовані для різних систем. Ще однією з ґрунтовних проблем Java є безпека Java аплетів — спеціальних програм на Java, що можуть вбудовуватися у вебсторінки. Щоправда останні так і не набули значної популярності в інтернеті, поступившись іншим аналогічним технологіям, як то флеш технологія.

Використання іншими компаніями

[ред. |ред. код]
Android широко використовує технології Java

Google

[ред. |ред. код]

При створенніAndroid (операційної системи звідкритим кодом)Google взяла за основу Java. Незважаючи на те, що операційна система, збудована наядрі Linux, була написана переважно наC, AndroidSDK використовує Java для розробки застосунків для платформи Android.

7 травня2012 року суд Сан-Франциско виявив, що якщоAPI може бути захищенеавторським правом, то Google, використовуючи Java в Android, порушив авторські праваOracle.[15] Було підняте питання про правовий статус використання Java в Android-пристроях. Однак вже 31 травня того ж року федеральний суддя США постановив, що API не можуть бути захищеними авторським правом.[16]

Графічний інтерфейс користувача

[ред. |ред. код]

Для реалізації графічного інтерфейсу (GUI) в Java існують три основні пакети класів[17]:

Перевагами першого є простота використання, інтерфейс, подібний до інтерфейсу операційної системи, та дещо краща швидкодія, оскільки базується на засобах ОС, щоправда має обмежений набір графічних елементів. Другий пакет Swing реалізує власний Java-інтерфейс. Цей пакет створювався на основі AWT і має набагато більше можливостей та більшу кількість графічних елементів.[18]. Swing-компоненти ще називаютьполегшеними (англ.lightweight), оскільки вони написані повністю на Java і тому платформонезалежні.

Існують також сторонні пакети, найпопулярнішим єStandard Widget Toolkit (SWT, вимовляється «ес-дабл-ю-ті») — Стандартний інструментарій віджетів. Розроблений підрозділом Rational фірми IBM і компанією Object Technology International (OTI), зараз розвивається фондомEclipse.

Див. також

[ред. |ред. код]

Примітки

[ред. |ред. код]
  1. Gosling and McGilton (May 1996).The Java Language Environment.Архів оригіналу за 12 травня 2013. Процитовано 8 квітня 2009.
  2. J. Gosling, B. Joy, G. Steele, G. Brachda.The Java Language Specification, 2nd Edition.Архів оригіналу за 12 травня 2013. Процитовано 8 квітня 2009.
  3. Архівована копія. Архіворигіналу за 5 січня 2009. Процитовано 8 квітня 2009.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  4. Іноді трапляється "німецька" вимова "Ява".
  5. Different Isn't Always Better, But Better's Always Different[Архівовано 2009-09-05 уWayback Machine.]
  6. The Java History Timeline[Архівовано 11 лютого 2010 уWayback Machine.]. Офіційний сайт www.java.com
  7. IEEE Spectrum опублікувала рейтинг найпопулярніших мов програмування 2023 року. // Автор: Артем Житкевич. 30.08.2023
  8. 1.2 Design Goals of the JavaTM Programming Language. Архіворигіналу за 23 січня 2013. Процитовано 2 січня 2017.
  9. Архівована копія. Архіворигіналу за 19 грудня 2008. Процитовано 8 січня 2009.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  10. Текст ліцензії Microsoft. Архіворигіналу за 7 червня 2010. Процитовано 13 липня 2010.[Архівовано 2010-06-07 уWayback Machine.]
  11. What's New in JDK 8. Oracle. Архіворигіналу за 31 березня 2018. Процитовано 23 квітня 2018.
  12. John K. Waters (21 березня 2018).Java 10 Released, First in the New Faster Cadence. ADT Mag. Архіворигіналу за 27 березня 2018. Процитовано 27 березня 2018.
  13. Chander, Sharat.Introducing Java SE 11.oracle.com.Архів оригіналу за 26 вересня 2018. Процитовано 26 вересня 2018.
  14. Oracle: Programming language Java 14 is out with these 16 major feature improvements. ZDnet. 19 березня 2020. Архіворигіналу за 19 березня 2020. Процитовано 25 березня 2020.
  15. Mullin, Joe. «Google guilty of infringement in Oracle trial; future legal headaches loom»[Архівовано 8 травня 2012 уWayback Machine.]
  16. Joe Mullin (31.05.2012). «Google wins crucial API ruling, Oracle's case decimated»[Архівовано 2 червня 2012 уWayback Machine.]. Ars Technica. 
  17. Графический интерфейс на Java (Swing GUI Tutorial). Архіворигіналу за 1 серпня 2010. Процитовано 2 вересня 2010.[Архівовано 2010-08-01 уWayback Machine.]
  18. Feigenbaum, Barry.SWT, Swing or AWT: Which is right for you? (21.02.2006).Архів оригіналу за 12.05.2013. Процитовано 2 вересня 2010.

Література

[ред. |ред. код]

Посилання

[ред. |ред. код]
Java
у сестринських Вікіпроєктах


Мова програмуванняЦе незавершена стаття промови програмування.
Ви можетедопомогти проєкту,виправивши або дописавши її.
Рівень
Низькорівневі
Високорівневі
Загального
призначення
Серверні
Запитів до баз
даних[суперечливо 1]
Розмітки тавекторної
графіки
[суперечливо 1]
Синхронні
Символьних та
чисельних обчислень
Квантових обчислень
Логічні
Академічні
Езотеричні
  1. абНемає загальноприйнятого рішення, чи вважати усі ці мови саме мовами програмування
Платформи Java
Технології Sun
Основні технології Java
Основні сторонні технології
Історія
Мови програмуванняJVM
Java конференції
Загальне
Історія
ОС на базі ВПЗ
BSD · Apple Darwin · FreeDOS · FreeBSD · OpenBSD · FreeNAS · GNU · Haiku · Hurd · Inferno · Linux · Mach · MINIX · OpenSolaris · Plan 9 · ReactOS
Розробка ВПЗ[en]
Eclipse · FreeBASIC · Free Pascal · GCC · Java · libJIT[ru] · LLVM · Lua · Open64 · Perl · PHP · Python · ROSE[en] · Ruby · Tcl
Менеджери
вікон XWS
Організації
Ліцензії
Проблеми
Інше
Отримано зhttps://uk.wikipedia.org/w/index.php?title=Java&oldid=46276427
Категорії:
Приховані категорії:

[8]ページ先頭

©2009-2026 Movatter.jp