Java Platform

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 16:39, 7 июня 2018.
Java (программная платформа)
Dukesource125.jpeg
Создатели: James Gosling, Sun Microsystems.
Разработчики: Oracle Corporation.
Написана на: Java, C++[1].
Операционная система: Windows, Solaris, Linux, OS X.
Платформа: IA-32, x64, ARMv7, ARMv8, SPARC.
Размер дистрибутива: 19.96 MB.
Тип ПО: Software platform.
Лицензия: Freeware, mostly open-source.
Веб-сайт java.com

Платформа Java - это набор программ, которые облегчают разработку и запуск программ, написанных на языке программирования Java . Платформа Java будет включать механизм выполнения (называемый виртуальной машиной), компилятор и набор библиотек ; могут быть также дополнительные серверы и альтернативные библиотеки, которые зависят от требований. Java не относится ни к одному процессору или операционной системе, поскольку платформы Java были реализованы для широкого спектра аппаратных и операционных систем, чтобы позволить программам Java работать одинаково на всех из них. Различные платформы предназначены для разных классов доменов устройств и приложений :

  • Java Card : технология, позволяющая безопасным запускам приложений на Java ( апплетах ) на смарт-картах и подобных устройствах с малой памятью.
  • Java ME (Micro Edition): задает несколько разных наборов библиотек (известных как профили) для устройств с ограниченными возможностями хранения, отображения и мощности. Он часто используется для разработки приложений для мобильных устройств, КПК, ТВ -приставки и принтеров.
  • Java SE (стандартная версия): для общего использования на настольных ПК, серверах и подобных устройствах.
  • Java EE (Enterprise Edition): Java SE плюс различные API, которые полезны для многоуровневых клиент-серверных корпоративных приложений .
Java12.jpeg

Виртуальная машина Java

В большинстве современных операционных систем (ОС) для упрощения работы программиста предусмотрен большой код многократного использования. Этот код обычно предоставляется в виде набора динамически загружаемых библиотек, которые приложения могут вызывать во время выполнения. Поскольку платформа Java не зависит от какой-либо конкретной операционной системы, приложения не могут полагаться на какую-либо из ранее существовавших библиотек ОС. Вместо этого платформа Java предоставляет полный набор собственных библиотек стандартных классов, содержащих многие из тех же функций многократного использования, которые обычно встречаются в современных операционных системах. Большая часть системной библиотеки также написана на Java. Например, Swing библиотека рисует пользовательский интерфейс и обрабатывает сами события, устраняя множество тонких различий между тем, как разные платформы обрабатывают компоненты. Библиотеки классов Java выполняют три задачи на платформе Java. Во-первых, как и другие стандартные библиотеки кода, библиотеки Java предоставляют программисту известный набор функций для выполнения общих задач, таких как ведение списков элементов или выполнение сложного синтаксического анализа строк. Во-вторых, библиотеки классов предоставляют абстрактный интерфейс для задач, которые обычно будут в значительной степени зависеть от аппаратного обеспечения и операционной системы. Такие задачи, как сетевой доступ и доступ к файлам, часто сильно переплетаются с отличительными реализациями каждой платформы. The java.net и java.io библиотеки реализуют уровень абстракции в коде ОС, а затем предоставляют стандартный интерфейс для приложений Java для выполнения этих задач. Наконец, когда какая-то базовая платформа не поддерживает все функции, ожидаемые Java-приложением, библиотеки классов работают, чтобы изящно обрабатывать отсутствующие компоненты, либо путем эмуляции, чтобы обеспечить замену, либо, по крайней мере, путем обеспечения последовательного способа проверки наличия определенной особенности.

Языки

Слово «Java», как правило, относится к языку программирования Java, который был разработан для использования с платформой Java. Языки программирования, как правило, выходят за рамки фразы «платформа», хотя язык программирования Java был включен в качестве основной части платформы Java до Java 7. Поэтому язык и среда выполнения считались единым целым. Тем не менее, была сделана попытка с использованием спецификации Java 7 более четко рассматривать язык Java и виртуальную машину Java как отдельные объекты, так что они больше не считаются одним элементом[2]

Третьи стороны выпустили множество компиляторов или переводчиков , нацеленных на JVM. Некоторые из них предназначены для существующих языков, а другие для расширений языка Java. К ним относятся:

  • BeanShell - легкий язык сценариев для Java[3]
  • Clojure - диалект языка программирования Lisp
  • Groovy - полностью совместимый Java-совместимый Java-синтаксический, статический и динамический язык с функциями от Python, Ruby, Perl и Smalltalk
  • JRuby - переводчик Ruby
  • Jython - интерпретатор Python
  • Kotlin - Промышленный язык программирования для JVM с полной функциональностью Java
  • Rhino - переводчик JavaScript
  • Scala - язык программирования с несколькими парадигмами с синтаксисом, не совместимым с Java, разработанным как «лучшая Java»
  • Gosu - универсальный язык программирования Java Virtual Machine, выпущенный под лицензией Apache 2.0

Java Development Kit

Kit Java Development ( JDK ) является Sun продукт , предназначенный для разработчиков Java. С момента внедрения Java он стал самым широко используемым комплектом для разработки программного обеспечения Java (SDK).Он содержит компилятор Java, полную копию Java Runtime Environment (JRE) и многие другие важные инструменты для разработки

История

Платформа Java и язык начали в качестве внутреннего проекта Sun Microsystems в декабре 1990 года, что является альтернативой языкам программирования C ++ / C. Инженер Патрик Нотон все больше расстраивался состоянием интерфейсов прикладного программирования (API) Sun и C ++ , а также с тем, как проект NeWS обрабатывался организацией. Нотон сообщил Скотту Макнили о своем намерении покинуть Sun и переехать в NeXT; Макнили попросил его притвориться, что он Бог, и отправил ему электронное письмо с объяснением, как исправить компанию. Naughton предусматривал создание небольшой команды, которая могла бы работать автономно без бюрократии, которая затормозила другие проекты Sun. Макнили переслал сообщение другим важным людям в Sun, и начался проект Stealth[4] Проект Stealth вскоре был переименован в Green Project , а Джеймс Гослинг и Майк Шеридан присоединились к Naughton. Вместе с другими инженерами они начали работу в небольшом офисе на Sand Hill Road в Менло-Парке, штат Калифорния . Они стремились разработать новую технологию для программирования интеллектуальных устройств следующего поколения, которые Sun ожидала предложить новые новые возможности.Первоначально команда рассматривала использование C ++, но отклонила ее по нескольким причинам. Поскольку они разрабатывали встроенную систему с ограниченными ресурсами, они решили, что C ++ требует слишком много памяти и что ее сложность приводит к ошибкам разработчиков. Отсутствие сбора мусора на языке означало, что программистам приходилось вручную управлять системной памятью, сложной и подверженной ошибкам задачей. Команда также обеспокоена отсутствием у C ++ языка портативных устройств для обеспечения безопасности, распределенного программирования и потоковой передачи . Наконец, им нужна платформа, которая легко переносится на все типы устройств.

Билл Джой представил новый язык, объединяющий Mesa и C. В статье под названием « Дополнительно» он предложил Sun, чтобы ее инженеры должны были создать объектно-ориентированную среду на основе C ++. Первоначально Гослинг пытался модифицировать и расширять C ++ (предлагаемую разработку, которую он назвал «C ++ ++ -»), но вскоре отказался от этого в пользу создания нового языка, который он назвал Дубом , после дерева, которое стояло вне пределов его офис[5] К лету 1992 года команда могла продемонстрировать часть новой платформы, включая Green OS , язык Oak, библиотеки и аппаратное обеспечение. Их первая демонстрация, 3 сентября 1992 года, была сосредоточена на создании устройства персонального цифрового помощника (PDA) Star7 с графическим интерфейсом и интеллектуальным агентом под названием «Duke», чтобы помочь пользователю. В ноябре того же года Зеленый проект был выделен, чтобы стать Firstperson , дочерней компанией Sun Microsystems, и команда переехала в Пало-Альто, штат Калифорния . Команда Firstperson заинтересовалась созданием высокоинтерактивных устройств, и когда Time Warner выпустилазапрос заявки (RFP) для телевизионной приставки , Firstperson изменил свою цель и ответил предложением о платформе телеприставки. Однако кабельная индустрия считала, что их платформа слишком сильно контролирует пользователя, поэтому Firstperson потерял свою ставку в SGI . Дополнительную сделку с компанией 3DO для телеприставки также не удалось реализовать. Не в состоянии вызвать интерес в телевизионной индустрии, компания была откатна на Солнце.

Java встречает Web

В июне и июле 1994 года - после трех дней мозгового штурма с Джоном Гейге (директором по науке для Солнца), Гослинг, Радость, Нотон, Уэйн Розинг и Эрик Шмидт - команда перенацелила платформу для Всемирной паутины . Они почувствовали, что с появлением графических веб-браузеров, таких как Mosaic, Интернет может перерасти в ту же самую интерактивную среду, которую они предусмотрели для кабельного телевидения. В качестве прототипа, Naughton написал небольшой браузер, WebRunner (названный в честь фильма Blade Runner ), переименованный в HotJava[6] в 1995 году.

В 1994 году Sun переименовала язык Oak на Java после поиска товарного знака, который показал, что Oak Technology использует название Oak[7]. Хотя Java 1.0a стала доступна для скачивания в 1994 году, первый публичный выпуск Java, Java 1.0a2 с браузером HotJava, появился 23 мая 1995 года, анонсирован Гейдж на конференции SunWorld . Сопровождающее заявление Гейджа, Марк Андреессен , исполнительный вице-президент Netscape Communications Corporation , неожиданно объявил, что браузеры Netscape будут включать поддержку Java. 9 января 1996 года Sun Microsystems сформировала группу JavaSoft для разработки технологии.

В то время как так называемые Java-апплеты для веб-браузеров больше не являются наиболее популярным использованием Java (например, более используемым сервером) или самым популярным способом запуска клиентской части кода (использование JavaScript стало более популярным), это все еще возможно запустить Java (или другие JVM-языки, такие как Kotlin) в веб-браузерах, даже после того, как из них была удалена поддержка JVM, используя, например, TeaVM .

История версий

Язык Java претерпел несколько изменений после выпуска JDK ( Java Development Kit ) 1.0 от 23 января 1996 года, а также множество дополнений классов и пакетов к стандартной библиотеке . Поскольку J2SE 1.4, Java Community Process (JCP) управляет эволюцией Java-языка. JCP использует запросы спецификации Java (JSR) для предложения и указания дополнений и изменений на платформе Java. Спецификация языка Java (JLS) определяет язык; изменения в JLS управляются в JSR 901[8]

Sun выпустила JDK 1.1 19 февраля 1997 года. Основные дополнения включали в себя обширное обновление модели событий AWT , добавление внутренних классов на язык JavaBeans и JDBC .

J2SE 1.2 (8 декабря 1998 г.) - игровая площадка Codename . Этот и последующие выпуски через J2SE 5.0 были переименованы в Java 2, а имя версии J2SE ( Java 2 Platform, Standard Edition ) заменило JDK, чтобы отличить базовую платформу от J2EE ( Java 2 Platform, Enterprise Edition ) и J2ME ( платформа Java 2, Micro Edition ). Основные дополнения включали отражение , структуру коллекций , Java IDL ( реализация языка описания интерфейса для взаимодействия CORBA ) и интеграцию графического API Swing в основные классы. Был выпущен Java Plug-in , а JVM от Sun был впервые оснащен JIT-компилятором .

J2SE 1.3 (8 мая 2000 г.) - Codename Kestrel . Заметные изменения включали в себя объединение HotSpot JVM (JVM HotSpot была впервые выпущена в апреле 1999 года для J2SE 1.2 JVM), JavaSound , Java Naming and Directory Interface (JNDI) и Java Debugger Architecture (JPDA).

J2SE 1.4 (6 февраля 2002 г.) - Codename Merlin . Это стало первым выпуском платформы Java, разработанной в рамках Java Community Process как JSR 59<[9] Основные изменения включали регулярные выражения, моделируемые после Perl , цепочку исключений , интегрированный синтаксический анализатор XML и XSLT- процессор ( JAXP ) и Java Web Start .

J2SE 5.0 (30 сентября 2004 г.) - Codename Tiger . Первоначально он был пронумерован 1,5, который по-прежнему используется как внутренний номер версии. Разработанный под JSR 176, Tiger добавил несколько важных новых языковых функций, в том числе для каждого цикла , generics , autoboxing и var-args .

Java SE 6 (11 декабря 2006 г.) - Codename Mustang . Он был связан с менеджером базы данных и облегчил использование языков сценариев с помощью JVM (например, JavaScript с использованием Mozilla 's Rhino ). Начиная с этой версии, Sun заменила имя «J2SE» на Java SE и сбросила «.0» из номера версии. Другие существенные изменения включают поддержку подключаемых аннотаций ( JSR 269 ), множество улучшений графического интерфейса пользователя , включая собственные усовершенствования пользовательского интерфейса для поддержки внешнего вида Windows Vista и улучшения архитектуры отладчика Java Platform Debugger Architecture (JPDA) и JVM Tool Interface для лучшего мониторинга и устранения неполадок.

Java SE 7 (28 июля 2011 г.) - Codename Dolphin . Эта версия разработана под JSR 336[Источник 1]. Она добавила много небольших изменений языка, включая строки в переключателях, try-with-resources и тип вывода для создания общего экземпляра. JVM был расширен с поддержкой динамических языков, в то время как библиотека классов была расширена среди других с помощью структуры join / fork, улучшена новая библиотека ввода-вывода файлов и поддержка новых сетевых протоколов, таких как SCTP . Обновление Java 7 Update 76 было выпущено в январе 2015 года, с датой истечения 14 апреля 2015 года.

В июне 2016 года после последнего публичного обновления Java 7 были объявлены[10] « удаленные удаленные » ошибки безопасности в Java 6, 7 и 8.

Java SE 8 (18 марта 2014 г.). Значительные изменения включают поддержку уровня лямбда-выражений ( закрытий ) на уровне языка и методы по умолчанию, среду исполнения JavaScript проекта Nashorn, новый API дат и времени, созданный Joda Time, и удаление PermGen. Эта версия официально не поддерживается на платформе Windows XP[Источник 2]. Java 8 поддерживается в Windows Server 2008 R2 с пакетом обновления 1 (SP1), Windows Vista с пакетом обновления 2 (SP2) и Windows 7 с пакетом обновления 1 (SP1), Ubuntu 12.04 LTS и выше (и некоторых других операционных системах).

Java 10 имеет более высокие системные требования, то есть Windows 7 или Server 2012 (и минимальный сертификат веб-браузера увеличен до Internet Explorer 11 или других веб-браузеров), а Oracle снижает 32-разрядную совместимость для всех платформ, то есть только 64-битную Java-версию Oracle виртуальные машины (JVM) сертифицированы»[Источник 3]..

В дополнение к языковым изменениям в течение многих лет были внесены значительные изменения в библиотеку классов Java, которая выросла с нескольких сотен классов в JDK 1.0 до более чем трех тысяч в J2SE 5.0. Все новые API, такие как Swing и Java 2D , развились, и многие из оригинальных классов и методов JDK 1.0 устарели .

Применение

Использование рабочего стола

Согласно Oracle в 2010 году, среда выполнения Java была обнаружена на более чем 850 миллионах компьютеров[11] , Архивировано с оригинала 25 сентября 2010 года . Получено 15 декабря 2011 года . Java работает на более чем 850 миллионах персональных компьютеров по всему миру и на миллиардах устройств по всему миру, включая мобильные и телевизионные устройства. Microsoft не связала Java Runtime Environment (JRE) со своими операционными системами, так как Sun Microsystems подала в суд на Microsoft за добавление классов, относящихся к Windows, в связанную среду исполнения Java и для создания новых классов через Visual J ++ . Apple больше не включает Java runtime с OS X с версии 10.7 , но система предлагает пользователю загрузить и установить его при первом запуске приложения, требующего JRE. Многие дистрибутивы Linux включают в себя среду исполнения OpenJDK в качестве виртуальной машины по умолчанию, что отрицает необходимость загрузки проприетарного Oracle JRE[12]

Java-программа, работающая на настольном компьютере Windows Vista (поддерживается Java 8, но официально не поддерживается Java 10).jpeg

Некоторые приложения Java довольно широко используются на настольных компьютерах, включая интегрированные среды разработки NetBeans и Eclipse , а также клиенты обмена файлами, такие как LimeWire и Vuze . Java также используется в среде программирования математики MATLAB , как для визуализации пользовательского интерфейса, так и как части основной системы. Java предоставляет кросс-платформенный пользовательский интерфейс для некоторых высокопроизводительных совместных приложений, таких как Lotus Notes . Oracle планирует сначала отказаться от отдельно устанавливаемого плагина Java-браузера из Java Runtime Environment в JDK 9, а затем полностью удалить его из будущей версии, заставив веб-разработчиков использовать альтернативную технологию.

Мобильные устройства

Java ME стала популярной в мобильных устройствах, где она конкурирует с Symbian , BREW и .NET Compact Framework .

Разнообразие производителей мобильных телефонов привело к необходимости в новых унифицированных стандартах, поэтому программы могут работать на телефонах от разных поставщиков - MIDP . Первым стандартом был MIDP 1, который предполагал небольшой размер экрана, отсутствие доступа к аудио и 32 & nbsp; Ограничение программы KB . Более поздний MIDP 2 позволяет получить доступ к аудио и до 64 & nsbp; KB для размера программы. С дизайнами телефонов, улучшающимися быстрее, чем стандарты, некоторые производители ослабляют некоторые ограничения в стандартах, например максимальный размер программы.

Операционная система Android от Google использует язык Java, но не его библиотеки классов, поэтому платформу Android нельзя назвать Java. Android во всех поддерживаемых версиях вместо Java VM выполняет код виртуальной машины ART (ранее Dalvik VM до Android 4.4.4).

Веб-сервер и использование предприятия

Платформа Java стала основой развития ИТ-инфраструктуры со времени внедрения Enterprise Edition в 1998 году двумя различными способами: 1. Благодаря соединению Java с веб-сервером платформа Java стала ведущей платформой для интеграции Интернета с корпоративными бэкэнд-системами. Это позволило компаниям перемещать часть или весь свой бизнес в Интернет-среду посредством интерактивных интерактивных сред (таких как высокодинамичные веб-сайты), которые позволяют клиенту осуществлять прямой доступ к бизнес-процессам (например, веб-сайты онлайн-банкинга, системы бронирования авиабилетов и скоро). Эта тенденция продолжилась со времени ее начального запуска через Интернет:

  • Платформа Java созрела в роли Enterprise Integration, в которой устаревшие системы разблокируются внешним миром через мосты, построенные на платформе Java. Эта тенденция была поддержана поддержкой Java-платформы для стандартов EAI, таких как обмен сообщениями и веб-сервисами, и стимулировала включение платформы Java в качестве основы разработки в таких стандартах, как SCA , XAM и другие.
  • Java стала стандартной платформой разработки для ИТ-отделов многих компаний, которые делают большинство или все их корпоративное развитие на Java. Этот тип разработки обычно связан с инструментами конкретной компании (например, средством бронирования для авиакомпании), а выбор для платформы Java часто обусловлен стремлением использовать существующую инфраструктуру Java для создания высокоинтеллектуальных и взаимосвязанных инструментов.

2. Платформа Java стала основной платформой для разработки многих программных инструментов и платформ, которые производятся сторонними группами программного обеспечения (коммерческие, с открытым исходным кодом и гибридами) и используются в качестве настраиваемых (а не программируемых) инструментов компаниями. К примерам этой категории относятся веб-серверы, серверы приложений, базы данных, служебные шины, инструменты управления бизнес-процессами (BPM) и системы управления контентом . Корпоративное использование Java также долгое время было основным драйвером интереса с открытым исходным кодом к платформе. Этот интерес вдохновил сообщества разработчиков с открытым исходным кодом на создание большого количества программного обеспечения, включая простые библиотеки функций, рамки разработки (например, Spring Framework , Apache Wicket , Dojo Toolkit , Hibernate ) и версии с открытым исходным кодом стандартов и инструментов (например, Apache Tomcat , сервер приложений GlassFish , то Mule и Apache ServiceMix автобусы предприятия обслуживания ).

Веб-приложение с поддержкой Java.jpeg

Лицензирование

Исходный код для реализации Sun Java (то есть фактическая эталонная реализация) был доступен в течение некоторого времени, но до недавнего времени условия лицензии строго ограничили то, что можно было бы сделать с ней, не заключая (и обычно оплачивая) контракт с Sun. Таким образом, эти условия не удовлетворяли требованиям Инициативы с открытым исходным кодом или Фонда свободного программного обеспечения, которые считаются открытым исходным кодом или свободным программным обеспечением, и поэтому Sun Java является запатентованной платформой[13]


Бесплатное ПО

ВС объявил в JavaOne 2006 , что Java бы стать свободным и открытым исходным кодом , а 25 октября 2006 года, на Oracle OpenWorld конференции, Джонатан И. Шварц сказал , что компания была создана , чтобы объявить о выпуске ядра платформы Java как бесплатное программное обеспечение с открытым исходным кодом в течение 30-60 дней. В июне 2008 года было объявлено, что IcedTea 6 (как упакованная версия OpenJDK на Fedora 9 ) прошла тесты на совместимость с технологиями и может претендовать на полноту совместимости с Java 6[14]


Поскольку OpenJDK находится под GPL, можно перераспределить пользовательскую версию JRE напрямую с помощью программных приложений, вместо того, чтобы потребовать, чтобы enduser (или их sysadmin) загружал и устанавливал правильную версию проприетарного Oracle JRE на каждую из своих систем.

Обновить систему

Java еще не выпустила автоматическое обновление, которое не требует вмешательства пользователя и административных прав[15], в отличие от Google Chrome[16] и Flash-плеера[17].

Ссылки

Источники

  1. Программа Java Community Process // Jcp.org [2001–2018]. Дата изменения: 08.04.2014. URL: https://www.jcp.org/en/jsr/detail?id=336 (Дата обращения: 27.05.2018).
  2. Windows XP и Java // Java.com. [1990–2018]. Дата изменения: 20.04.2018. URL: https://www.java.com/en/download/faq/winxp.xml (Дата обращения: 27.05.2018).
  3. Сертифицированные конфигурации системы Oracle JDK 10 // www.oracle.com [2001–2018]. Дата изменения: 27.03.2018. URL: https://www.oracle.com/technetwork/java/javaseproducts/documentation/jdk10certconfig-4417031.html (Дата обращения: 27.05.2018).

Примечания

  1. http://www.oracle.com/technetwork/java/javase/certconfig-2095354.html
  2. "Спецификация JVM 7". 
  3. www.beanshell.org
  4. Southwick, Karen. Высокий полдень: внутренняя история Скотта Макнили и рост Sun Microsystems. 
  5. Southwick, Karen. Высокий полдень: внутренняя история Скотта Макнили и рост Sun Microsystems. 
  6. Byous, Джон (апрель 2003). «Технология Java: ранние годы» . Sun Microsystems . Архивировано с оригинала 30 мая 2008 года . Retrieved 2009-08-02
  7. "Так почему же они решили назвать его Java?". 
  8. "Программа Java Community Process (SM) - JSRs: Запросы спецификации Java - деталь JSR # 63". 
  9. "Программа Java Community Process (SM) - JSRs: Запросы спецификации Java - деталь JSR # 59". 
  10. https://www.java.com/en/download/faq/release_dates.xml
  11. "Что такое технология Java и зачем она мне нужна?". 
  12. "Java на Fedora". 
  13. "Любопытный инцидент с Солнцем в ночное время". 
  14. "ava наконец-то свободен и открыт". 
  15. "Как мне обновить Java из учетной записи без администратора?". 
  16. "Обновить Google Chrome". 
  17. "Бюллетень безопасности Adobe".