Послушайте эту статью
Из Википедии, бесплатной энциклопедии
  (Перенаправлено с платформы Java )
Перейти к навигации Перейти к поиску

Программа на базе Java

Java - это набор компьютерного программного обеспечения и спецификаций, разработанный Джеймсом Гослингом из Sun Microsystems , которая позже была приобретена корпорацией Oracle Corporation , которая обеспечивает систему для разработки прикладного программного обеспечения и его развертывания в кросс-платформенной вычислительной среде. Java используется в широком спектре вычислительных платформ, от встроенных устройств и мобильных телефонов до корпоративных серверов и суперкомпьютеров . Java-апплеты , которые встречаются реже, чем отдельные Java-приложения, обычно выполняются в безопасных,изолированные среды для обеспечения многих функций собственных приложений за счет встраивания в HTML- страницы.

Написание на языке программирования Java - это основной способ создания кода, который будет развернут как байт-код на виртуальной машине Java (JVM); Компиляторы байтового кода также доступны для других языков, включая Ada , JavaScript , Python и Ruby . Кроме того, для работы на JVM изначально было разработано несколько языков, включая Clojure , Groovy и Scala . Синтаксис Java сильно заимствован из C и C ++ , но объектно-ориентированные функции смоделированы по образцу Smalltalk.и Objective-C . [13] Java избегает определенных низкоуровневых конструкций, таких как указатели, и имеет очень простую модель памяти, в которой объекты размещаются в куче (в то время как некоторые реализации, например, все в настоящее время поддерживаемые Oracle, вместо этого могут использовать оптимизацию анализа escape- последовательности для выделения в стеке ) и все переменные объектных типов являются ссылками . Управление памятью осуществляется с помощью встроенной автоматической сборки мусора, выполняемой JVM.

13 ноября 2006 года Sun Microsystems сделала большую часть своей реализации Java доступной по Стандартной общественной лицензии GNU (GPL). [14] [15]

Последняя версия - Java 15 , выпущенная в сентябре 2020 года. В качестве платформы с открытым исходным кодом у Java есть много дистрибьюторов, включая Amazon, IBM, Azul Systems и AdoptOpenJDK. Распространение включает Amazon Correto, Zulu, AdoptOpenJDK и Liberica. Что касается Oracle, он распространяет Java 8, а также делает доступным, например, Java 11, версию с долгосрочной поддержкой (LTS) , которая в настоящее время поддерживается , выпущенная 25 сентября 2018 года. Oracle (и другие) «настоятельно рекомендуют вам удалить старые версии Java. ", чем Java 8, [16] из-за серьезных рисков, связанных с нерешенными проблемами безопасности. [17] [18] [19]Поскольку Java 9 (а также 10, 12, 13 и 14) больше не поддерживается, Oracle советует своим пользователям «немедленно перейти» на поддерживаемую версию. Oracle выпустила последнее бесплатное общедоступное обновление для устаревшей Java 8 LTS в январе 2019 года и будет продолжать поддерживать Java 8 с общедоступными обновлениями для личного использования на неопределенный срок. Oracle расширенная поддержка Java 6 закончилась в декабре 2018 г. [20]

Платформа [ править ]

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

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

Платформа Java состоит из нескольких программ, каждая из которых обеспечивает часть своих общих возможностей. Например, компилятор Java, который преобразует исходный код Java в байт-код Java (промежуточный язык для JVM), предоставляется как часть Java Development Kit (JDK). Среда выполнения Java (JRE), дополняя JVM JIT-компилятором , на лету преобразует промежуточный байт-код в собственный машинный код. Платформа Java также включает обширный набор библиотек.

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

Виртуальная машина Java [ править ]

Сердце платформы Java - это «виртуальная машина», которая выполняет программы с байт-кодом Java . Этот байт-код одинаков независимо от того, на каком оборудовании или в какой операционной системе запущена программа. Однако в новых версиях, например для Java 10 (и более ранних), были внесены небольшие изменения, а это означает, что байт-код в целом совместим только с прямой версией . В виртуальной машине Java или JVM есть компилятор JIT (Just In Time) . Компилятор JIT переводит байт-код Java в инструкции собственного процессора во время выполнения и кэширует собственный код в памяти во время выполнения.

Использование байт-кода в качестве промежуточного языка позволяет программам Java работать на любой платформе, имеющей доступную виртуальную машину. Использование JIT-компилятора означает, что Java-приложения после небольшой задержки во время загрузки и после того, как они «разогреются» за счет полной или большей части JIT-компиляции, имеют тенденцию работать примерно так же быстро, как собственные программы. [21] [22] [23] Начиная с JRE версии 1.2, реализация Sun JVM включает оперативный компилятор вместо интерпретатора.

Хотя программы Java кроссплатформенны или независимы от платформы, код виртуальных машин Java (JVM), выполняющих эти программы, не является. Каждая поддерживаемая операционная платформа имеет свою собственную JVM.

Библиотеки классов [ править ]

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

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

Языки [ править ]

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

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

  • BeanShell - облегченный язык сценариев для Java [25] (см. Также JShell )
  • Ceylon - объектно-ориентированный, строго статически типизированный язык программирования с упором на неизменяемость.
  • Clojure - современный, динамичный и функциональный диалект от языка программирования Lisp на платформе Java
  • Gosu - универсальный язык программирования на основе виртуальной машины Java, выпущенный под лицензией Apache License 2.0.
  • Groovy - полностью совместимый с Java, совместимый с Java-синтаксисом, статический и динамический язык с функциями Python, Ruby, Perl и Smalltalk.
  • JRuby - интерпретатор Ruby
  • Jython - интерпретатор Python
  • Kotlin - промышленный язык программирования для JVM с полной совместимостью с Java.
  • Rhino - интерпретатор JavaScript
  • Scala - многопарадигмальный язык программирования с несовместимым с Java синтаксисом, разработанный как "улучшенная Java".

Похожие платформы [ править ]

Успех Java и ее концепции « напиши один раз, запусти где угодно » привел к другим аналогичным усилиям, особенно к .NET Framework , появившейся с 2002 года, которая включает многие успешные аспекты Java. .NET создавался с нуля для поддержки нескольких языков программирования, тогда как платформа Java изначально создавалась для поддержки только языка Java, хотя с тех пор для JVM было создано множество других языков. Как и Java, языки .NET компилируются в байтовый код и выполняются Common Language Runtime (CLR), которая по своему назначению аналогична JVM. Как и JVM, среда CLR обеспечивает управление памятью с помощью автоматической сборки мусора и позволяет запускать байтовый код .NET в нескольких операционных системах.

.NET включал Java-подобный язык, сначала называвшийся J ++ , а затем называвшийся Visual J # , несовместимый со спецификацией Java. Он был прекращен в 2007 году, а его поддержка закончилась в 2015 году.

Комплект разработчика Java [ править ]

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

История [ править ]

Джеймс Гослинг

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

Stealth Project вскоре был переименован в Green Project , и к Naughton присоединились Джеймс Гослинг и Майк Шеридан. Вместе с другими инженерами они начали работать в небольшом офисе на Сэнд-Хилл-роуд в Менло-Парке, Калифорния . Они стремились разработать новую технологию для программирования интеллектуальных устройств следующего поколения, которые, как ожидала Sun, откроют новые широкие возможности. [27]

Первоначально команда рассматривала возможность использования C ++, но отклонила его по нескольким причинам. Поскольку они разрабатывали встроенную систему с ограниченными ресурсами, они решили, что C ++ требует слишком много памяти и что его сложность приводит к ошибкам разработчика. Отсутствие в языке сборки мусора означало, что программистам приходилось вручную управлять системной памятью, что было сложной и подверженной ошибкам задачей. Команда также обеспокоена отсутствием в языке C ++ переносимых средств безопасности, распределенного программирования и потоковой передачи . Наконец, им нужна была платформа, которую можно было бы легко перенести на все типы устройств.

Билл Джой представил новый язык, объединяющий Mesa и C. В статье « Далее» он предложил Sun создать объектно-ориентированную среду на основе C ++. Первоначально Гослинг пытался модифицировать и расширять C ++ (предложенная разработка, которую он назвал «C ++ ++ -»), но вскоре отказался от этого в пользу создания нового языка, который он назвал Oak , в честь дерева, стоявшего рядом с ним. его офис. [28]

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

Java встречает Интернет [ править ]

Джон Гейдж

В июне и июле 1994 года - после трех дней мозгового штурма с Джоном Гейджем (научным директором Sun), Гослингом, Джоем, Нотоном, Уэйном Розингом и Эриком Шмидтом  - команда перенаправила платформу на World Wide Web . Они чувствовали, что с появлением графических веб-браузеров, таких как Mosaic, Интернет может превратиться в ту же высокоинтерактивную среду, которую они представляли для кабельного телевидения. В качестве прототипа Нотон написал небольшой браузер WebRunner (названный в честь фильма « Бегущий по лезвию» ), переименованный в HotJava [27] в 1995 году.

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

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

История версий [ править ]

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

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

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

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

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

J2SE 5.0 (30 сентября 2004 г.) - Кодовое имя Tiger . Первоначально он имел номер 1.5, который до сих пор используется в качестве внутреннего номера версии. [34] Разработанный в рамках JSR 176, Tiger добавил несколько важных новых языковых функций, включая цикл for-each , универсальные шаблоны , автобоксирование и аргументы переменных . [35]

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

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

В июне 2016 года, после последнего общедоступного обновления Java 7, [40] было объявлено о « удаленно эксплуатируемых » ошибках безопасности в Java 6, 7 и 8. [18]

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

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

Java SE 11 была выпущена в сентябре 2018 г., это первый выпуск LTS с момента принятия модели быстрого выпуска, начиная с версии 9. Впервые OpenJDK 11 представляет собой полный исходный код для платформы Java под Стандартной общественной лицензией GNU, а Oracle по-прежнему имеет двойную лицензию с дополнительной проприетарной лицензией, нет различий в коде или модулей, уникальных для версии с проприетарной лицензией. [45] Функции Java 11 включают в себя две новые реализации сборщика мусора, Flight Recorder для отладки глубоких проблем, новый HTTP-клиент, включая поддержку WebSocket . [46]

Java SE 12 была выпущена в марте 2019 г. [47]

Java SE 13 была выпущена в сентябре 2019 г. [48]

Java SE 14 была выпущена в марте 2020 г. [49]

Java SE 15 была выпущена в сентябре 2020 года.

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

Использование [ править ]

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

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

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

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

Oracle планирует сначала отказаться от отдельно устанавливаемого подключаемого модуля для браузера Java из среды выполнения Java в JDK 9, а затем полностью удалить его из будущего выпуска, вынуждая веб-разработчиков использовать альтернативную технологию. [52]

Талисман [ править ]

Обычный старый герцог

Герцог - талисман Явы . [53]

Когда Sun объявила, что Java SE и Java ME будут выпущены под лицензией свободного программного обеспечения ( Стандартная общественная лицензия GNU ), они одновременно выпустили графику Duke под свободной лицензией BSD . [54] Каждый год создается новая личность Герцога. [55] Например, в июле 2011 года Future Tech Duke включал в себя больший нос, реактивный ранец и синие крылья. [56]

Лицензирование [ править ]

Исходный код для реализации Java Sun (то есть фактическая эталонная реализация) был доступен в течение некоторого времени, но до недавнего времени [57] условия лицензии строго ограничивали то, что можно было делать с ним без подписания (и, как правило, оплаты) контракт с Sun. Как таковые, эти условия не удовлетворяли требованиям ни Open Source Initiative, ни Free Software Foundation, чтобы считаться программным обеспечением с открытым исходным кодом или бесплатным программным обеспечением, и поэтому Sun Java была проприетарной платформой. [58]

В то время как несколько сторонних проектов (например, GNU Classpath и Apache Harmony ) создали частичные реализации Java для бесплатного программного обеспечения , большой размер библиотек Sun в сочетании с использованием методов чистой комнаты означал, что их реализации библиотек Java (компилятор и виртуальная машина) сравнительно небольшие и четко определенные) были неполными и не полностью совместимыми. Эти реализации также были гораздо менее оптимизированы, чем у Sun. [ необходима цитата ]

Бесплатное программное обеспечение [ править ]

Джонатан И. Шварц

ВС объявил в JavaOne 2006 , что Java станет бесплатным и открытым исходным кодом , [59] , а 25 октября 2006 года, на Oracle OpenWorld конференции, Джонатан И. Шварц сказал , что компания была создана , чтобы объявить о выпуске ядра платформы Java в качестве бесплатного программного обеспечения с открытым исходным кодом в течение 30–60 дней. [60]

13 ноября 2006 г. Sun выпустила виртуальную машину и компилятор Java HotSpot как бесплатное программное обеспечение под Стандартной общественной лицензией GNU с обещанием, что остальная часть JDK (включая JRE) будет помещена под GPL к марту 2007 г. за исключением нескольких компонентов, которые Sun не имеет права публиковать в форме распространяемого исходного кода под лицензией GPL »). [61] По словам Ричарда Столлмана , это означало бы конец «ловушке Java». [62] Марк Шаттлворт назвал первое сообщение для прессы «настоящей вехой для сообщества свободного программного обеспечения ». [63]

ВС выпустила исходный код из библиотеки классов под GPL 8 мая 2007 года, за исключением некоторых ограниченных частей , которые были лицензируемых Sun от третьих лиц , которые не хотят , чтобы их код , который будет выпущен под свободное программное обеспечение с открытым исходным кодом лицензии. [64] Некоторые из обремененных частей оказались довольно ключевыми частями платформы, например, рендеринг шрифтов и двухмерная растеризация, но они были позже выпущены Sun как открытый исходный код (см. Библиотеку классов OpenJDK ).

Целью Sun было заменить части, которые остаются проприетарными и с закрытым кодом, альтернативными реализациями и сделать библиотеку классов полностью бесплатной и с открытым исходным кодом. Тем временем сторонний проект IcedTea создал полностью бесплатный и удобный JDK, заменив обремененный код заглушками или кодом из GNU Classpath . Однако с тех пор OpenJDK можно собирать без обремененных частей (из OpenJDK 6 b10 [65] ) и стал средой выполнения по умолчанию для большинства дистрибутивов Linux. [66] [67] [68] [69]

В июне 2008 года было объявлено, что IcedTea 6 (как упакованная версия OpenJDK в Fedora 9 ) прошел тесты Technology Compatibility Kit и может претендовать на то, чтобы быть полностью совместимой реализацией Java 6. [70]

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

Критика [ править ]

В большинстве случаев поддержка Java не требуется в веб-браузерах, и специалисты по безопасности рекомендуют не запускать ее в браузере без крайней необходимости. [73] Было высказано предположение, что, если Java требуется для нескольких веб-сайтов, пользователям следует установить отдельный браузер специально для этих сайтов. [ необходима цитата ]

Дженерики [ править ]

Когда дженерики были добавлены в Java 5.0, уже существовала большая структура классов (многие из которых уже устарели ), поэтому дженерики были выбраны для реализации с использованием стирания, чтобы обеспечить совместимость миграции и повторное использование этих существующих классов. Это ограничивало возможности, которые могло быть предоставлено этим дополнением, по сравнению с некоторыми другими языками. [74] [75] Добавление подстановочных знаков типа сделало Java несостоятельным. [76]

Беззнаковые целочисленные типы [ править ]

В Java отсутствуют собственные целочисленные типы без знака . Беззнаковые данные часто генерируются из программ, написанных на C, и отсутствие этих типов препятствует прямому обмену данными между C и Java. Большие числа без знака также используются во многих областях числовой обработки, включая криптографию, что может сделать использование Java менее удобным для этих задач. [77]Хотя можно частично обойти эту проблему с помощью кода преобразования и использования больших типов данных, это затрудняет использование Java для обработки беззнаковых данных. В то время как 32-битное целое число со знаком может быть относительно легко использовано для хранения 16-битового значения без знака, для 32-битного значения без знака потребуется 64-битное целое число со знаком. Кроме того, 64-битное значение без знака не может быть сохранено с использованием какого-либо целочисленного типа в Java, поскольку в языке Java не существует типа, размер которого превышает 64 бит. Если абстрагироваться с использованием функций, вызовы функций становятся необходимыми для многих операций, которые являются родными для некоторых других языков. В качестве альтернативы можно использовать целые числа со знаком Java для имитации целых чисел без знака того же размера, но это требует детального знания сложных побитовых операций. [78]

Арифметика с плавающей точкой [ править ]

Хотя арифметика с плавающей запятой в Java в значительной степени основана на IEEE 754 ( стандарт для двоичной арифметики с плавающей запятой ), некоторые функции не поддерживаются даже при использовании strictfpмодификатора, такие как флаги исключений и направленное округление - возможности, предусмотренные стандартом IEEE Standard 754. Кроме того, типы с плавающей запятой расширенной точности, разрешенные в 754 и присутствующие во многих процессорах, не разрешены в Java. [79] [80]

Производительность [ править ]

На заре Java (до того, как виртуальная машина HotSpot была реализована в Java 1.3 в 2000 г.), производительность подвергалась критике. Тесты обычно сообщали, что Java примерно на 50% медленнее, чем C (язык, который компилируется в собственный код). [81] [82] [83]

Производительность Java значительно улучшилась по сравнению с ранними версиями. [21] Производительность JIT-компиляторов по сравнению с собственными компиляторами в некоторых оптимизированных тестах была показана примерно одинаково. [21] [22] [23]

Байт-код Java может быть интерпретирован виртуальной машиной во время выполнения, либо он может быть скомпилирован во время загрузки или выполнения в собственный код, который выполняется непосредственно на оборудовании компьютера. Интерпретация выполняется медленнее, чем собственное выполнение, и компиляция во время загрузки или выполнения имеет начальное снижение производительности для компиляции. Все современные высокопроизводительные реализации JVM используют подход компиляции, поэтому после начального времени запуска производительность эквивалентна машинному коду.

Безопасность [ править ]

Платформа Java обеспечивает архитектуру безопасности [84], которая разработана, чтобы позволить пользователю запускать ненадежный байт-код в «изолированной» манере для защиты от вредоносного или плохо написанного программного обеспечения. Эта функция «песочницы» предназначена для защиты пользователя путем ограничения доступа к определенным функциям платформы и API-интерфейсам, которые могут быть использованы вредоносными программами , такими как доступ к локальной файловой системе, выполнение произвольных команд или доступ к сетям связи.

В последние годы исследователи обнаружили многочисленные недостатки безопасности в некоторых широко используемых реализациях Java, включая Oracle, которые позволяют ненадежному коду обходить механизм песочницы, подвергая пользователей вредоносным атакам. Эти недостатки затрагивают только приложения Java, которые выполняют произвольный ненадежный байт-код, например плагины веб-браузера, которые запускают апплеты Java, загруженные с общедоступных веб-сайтов. Приложения, в которых пользователь доверяет и имеет полный контроль над всем выполняемым кодом, не затрагиваются.

31 августа 2012 года Java 6 и 7 (обе поддерживались в то время) в Microsoft Windows, OS X и Linux были обнаружены с серьезным недостатком безопасности, который позволил удаленному эксплойту выполнить простую загрузку вредоносной веб-страницы. [85] Позднее было обнаружено, что в Java 5 также есть недостатки. [86]

10 января 2013 года три компьютерных специалиста выступили против Java, заявив Рейтер, что она небезопасна и что людям следует отключить Java. Хайме Бласко, менеджер лаборатории AlienVault Labs, заявил, что «Java - это беспорядок. Это небезопасно. Вы должны отключить его». [87] Эта уязвимость затрагивает Java 7, и неясно, влияет ли она на Java 6 , поэтому пользователям предлагается отключить ее. [88] [89] В предупреждениях безопасности от Oracle объявляются расписания критических исправлений, связанных с безопасностью, для Java. [90]

14 января 2013 года эксперты по безопасности заявили, что обновление по-прежнему не защищает ПК от атак. [91] Эта дыра в эксплойте вызвала ответ Министерства внутренней безопасности США, в котором пользователям предлагалось отключить или удалить Java. [19] Apple внесла Java в черный список в ограниченном порядке для всех компьютеров, работающих под управлением операционной системы OS X, с помощью программы защиты от вирусов. [92]

В 2014 году, отвечая на недавние проблемы безопасности и уязвимости Java, блоггер по безопасности Брайан Кребс призвал пользователей удалить хотя бы плагин для браузера Java, а также все программное обеспечение. «Я с нетерпением жду мира без подключаемого модуля Java (и того, что мне не придется напоминать читателям о ежеквартальных обновлениях исправлений), но, вероятно, пройдут годы, прежде чем различные версии этого подключаемого модуля будут в основном удалены из систем конечных пользователей по всему миру». [93] «Когда-то многообещающий, он изжил себя в браузере и превратился в кошмар, который радует киберпреступников за счет пользователей компьютеров». [94]«Я думаю, что всем следует удалить Java со всех своих ПК и Mac, а затем тщательно подумать, нужно ли им добавлять ее обратно. Если вы типичный домашний пользователь, вы, вероятно, сможете обойтись без нее. Если вы бизнес-пользователь, вы может не иметь выбора ". [95]

Рекламное ПО [ править ]

Среда выполнения Java имеет историю объединения спонсируемого программного обеспечения, которое должно устанавливаться по умолчанию во время установки и во время обновлений, которые выпускаются примерно раз в месяц. Это включает в себя « панель инструментов Ask.com », которая перенаправляет поисковые запросы браузера на рекламу и «McAfee Security Scan Plus». [96] Эти предложения можно заблокировать с помощью настройки в Панели управления Java, хотя это не очевидно. Этот параметр находится на вкладке «Дополнительно» на панели управления Java под заголовком «Разное», где параметр помечен как вариант подавления «предложений спонсоров».

Система обновлений [ править ]

Java еще не выпустила средство автоматического обновления, которое не требует вмешательства пользователя и прав администратора [97], в отличие от Google Chrome [98] и Flash Player. [99]

См. Также [ править ]

  • Список Java API
  • Фреймворки ведения журналов Java
  • Производительность Java
  • JavaFX
  • Джазель
  • Java ConcurrentMap
  • Сравнение платформ Java и .NET
  • Список языков JVM
  • Список вычислительных талисманов
  • Категория: Вычислительные талисманы

Ссылки [ править ]

  1. ^ «JavaSoft поставляет Java 1.0» (пресс-релиз). Web.archive.org. Архивировано из оригинала на 5 февраля 2008 года . Проверено 9 февраля, 2016 .
  2. ^ Ортис, К. Энрике; Жигер, Эрик (2001). Профиль мобильного информационного устройства для Java 2 Micro Edition: Руководство разработчика (PDF) . Джон Вили и сыновья . ISBN  978-0471034650. Проверено 30 мая 2012 года .
  3. ^ «Обновления OpenJDK 15» . Корпорация Oracle . Проверено 23 января 2021 года .
  4. ^ «Обновления OpenJDK 11» . Корпорация Oracle . Проверено 23 января 2021 года .
  5. ^ «Обновления OpenJDK 8» . Корпорация Oracle . Проверено 23 января 2021 года .
  6. ^ «Сборки для раннего доступа JDK 17» . Корпорация Oracle . Проверено 23 января 2021 года .
  7. ^ «Сборки для раннего доступа JDK 16» . Корпорация Oracle . Проверено 23 января 2021 года .
  8. ^ «Группа HotSpot» . Openjdk.java.net . Проверено 9 февраля, 2016 .
  9. ^ a b «Содержание сертифицированных системных конфигураций Oracle JDK 8 и JRE 8» . Oracle.com . 8 апреля 2014 . Проверено 9 февраля, 2016 .
  10. ^ «Поддерживаемые языковые стандарты Java SE 7» . Oracle.com . Проверено 9 февраля, 2016 .
  11. ^ «OpenJDK: GPLv2 + исключение пути к классам» . Openjdk.java.net. 1 апреля 1989 . Проверено 9 февраля, 2016 .
  12. ^ "BCL для Java SE" . Oracle.com. 2 апреля 2013 . Проверено 9 февраля, 2016 .
  13. ^ Нотон, Патрик. «На Java сильно повлиял Objective-C» . Виртуальная школа . Архивировано из оригинального 3 сентября 2012 года.
  14. ^ «Солнце открывает Java» . Sun Microsystems. 13 ноября 2006 года Архивировано из оригинального 13 мая 2008 года.
  15. ^ O'Hair, Келли (декабрь 2010). «Удалена логика двоичных плагинов OpenJDK7 и OpenJDK6» . Корпорация Oracle . Проверено 25 ноября 2011 года .
  16. ^ "Почему я должен удалять старые версии Java из моей системы?" . www.java.com . Архивировано 12 февраля 2018 года . Проверено 6 февраля 2018 года .
  17. ^ "Почему я должен удалять старые версии Java из моей системы?" . Oracle . Проверено 9 сентября 2016 года .
  18. ^ a b «Oracle Critical Patch Update - июль 2016 г.» . www.oracle.com .
  19. ↑ a b Уиттакер, Зак (11 января 2013 г.). «Национальная безопасность предупреждает об отключении Java из-за ошибки нулевого дня» . ZDNet . Проверено 9 февраля, 2016 .
  20. ^ Александр, Кристофер. «Java SE 6 Advanced» . www.oracle.com . Проверено 20 мая 2018 года .
  21. ^ а б в Льюис, JP; Нойман, Ульрих. «Производительность Java по сравнению с C ++» . Лаборатория графики и иммерсивных технологий, Университет Южной Калифорнии .
  22. ^ a b «Тест Java Faster than C ++ Benchmark» . Kano.net. 14 ноября 2003 . Проверено 9 февраля, 2016 .
  23. ^ А б FreeTTS - тематическое исследование результатов архивации 2009-03-25 в Wayback Machine , Вилли Уокер, Пол Lamere, Филип Квок
  24. ^ «Глава 1. Введение» . docs.oracle.com .
  25. ^ www .beanshell .org
  26. ^ Саутвик, Карен (1999). Ровно в полдень: внутренняя история Скотта МакНили и подъема Sun Microsystems . Нью-Йорк [ua]: Уайли. С.  120–122 . ISBN 0471297135.
  27. ^ a b Byous, Джон (апрель 2003 г.). «Технология Java: первые годы» . Sun Microsystems . Архивировано из оригинального 30 мая 2008 года . Проверено 2 августа 2009 года .
  28. ^ Саутвик, Карен (1999). Ровно в полдень: внутренняя история Скотта МакНили и подъема Sun Microsystems . Нью-Йорк [ua]: Уайли. п. 124 . ISBN 0471297135.
  29. ^ Walrath, Кэти (21 декабря 2001). «Предисловие» . Sun Microsystems . Проверено 2 августа 2009 года .
  30. Мерфи, Кирон (4 октября 1996 г.). «Так почему они решили назвать это Java?» . JavaWorld . Проверено 15 июля 2020 . «Юристы сказали нам, что мы не можем использовать название« OAK », потому что [оно уже было зарегистрировано] Oak Technologies», - сказал Фрэнк Йеллин, старший инженер в Sun. «Итак, был проведен мозговой штурм, чтобы придумать идеи для нового имени».
  31. ^ «Sun Microsystems объявляет о создании JavaSoft» (пресс-релиз). Sun Microsystems. 9 января 1996 года Архивировано из оригинала на 2008-02-10.
  32. ^ "Программа Java Community Process (SM) - JSR: запросы спецификации Java - деталь JSR # 63" . Jcp.org . Проверено 9 февраля, 2016 .
  33. ^ "Программа Java Community Process (SM) - JSR: запросы спецификации Java - подробный JSR # 59" . Jcp.org . Проверено 9 февраля, 2016 .
  34. ^ "Версия 1.5.0 или 5.0?" . Java.sun.com . Проверено 9 февраля, 2016 .
  35. ^ "Программа Java Community Process (SM) - JSR: запросы спецификации Java - деталь JSR # 176" . Jcp.org . Проверено 9 февраля, 2016 .
  36. ^ «Java Naming» . Java.com . Oracle . Проверено 25 августа 2011 года .
  37. ^ "Программа Java Community Process (SM) - JSR: запросы спецификации Java - деталь JSR № 336" . Jcp.org . Проверено 9 февраля, 2016 .
  38. Перейти ↑ Lea, Doug (13 сентября 2004 г.). «JSR: Запросы спецификации Java: JSR 166: Утилиты параллелизма» . Процесс сообщества Java . Oracle Corp.
  39. ^ «Примечания к выпуску обновления 76 для Java ™ SE Development Kit 7» . Oracle.com . Проверено 9 февраля, 2016 .
  40. ^ «Выпуски Java 7 и Java 8 по дате» . www.java.com .
  41. ^ «Windows XP и Java» . Java.com. 8 апреля 2014 . Проверено 9 февраля, 2016 .
  42. ^ «java - установка JDK8 в Windows XP - ошибка advapi32.dll» . Переполнение стека .
  43. ^ «Сертифицированные системные конфигурации Oracle JDK 8 и JRE 8» . www.oracle.com .
  44. ^ «Сертифицированные системные конфигурации Oracle JDK 10» . www.oracle.com . Проверено 27 марта 2018 года . Поддерживается только режим X.org. Режим Wayland не поддерживается.
  45. ^ «План поддержки Oracle Java SE» . Корпорация Oracle . 25 сентября 2018 . Проверено 25 сентября 2018 года .
  46. ^ "JDK 11" . Корпорация Oracle . 25 сентября 2018 . Проверено 26 сентября 2018 года .
  47. ^ "JDK 12" . OpenJDK . Проверено 22 марта 2019 года .
  48. ^ "JDK 13" . OpenJDK . Проверено 17 сентября 2019 года .
  49. ^ "JDK 14" . OpenJDK . Проверено 25 марта 2020 года .
  50. ^ "Что такое технология Java и зачем она мне?" . Архивировано из оригинального 25 сентября 2010 года . Проверено 15 декабря 2011 года . Java работает на более чем 850 миллионах персональных компьютеров по всему миру и на миллиардах устройств по всему миру, включая мобильные и телевизионные устройства.
  51. ^ "Java - проект Fedora Wiki" . fedoraproject.org .
  52. Тема, Далибор (27 января 2016 г.). «Переход к сети без плагинов» . Oracle.
  53. ^ "Герцог, талисман Java" . Oracle . Проверено 18 марта 2019 года .
  54. ^ "Герцог: Домашняя страница проекта" . Sun Microsystems . Архивировано из оригинала 18 июня 2007 года . Проверено 18 марта 2007 года .
  55. ^ "Герцог, талисман Java" .
  56. ^ "Future Tech Duke (исходный код Java)" . Тори Вильдт. Архивировано из оригинального 20 -го августа 2011 года . Проверено 17 августа 2011 года .
  57. ^ Смит, Дональд (11 сентября 2018 г.). «Выпуски Oracle JDK для Java 11 и более поздних версий» .
  58. Столмен, Ричард (24 мая 2006 г.). «Любопытное происшествие с Солнцем в ночное время» . Гроклав .
  59. ^ Шварц, Джонатан. "?" . Блог Джонатана Шварца . Sun Microsystems. Архивировано из оригинала 15 июля 2006 года.
  60. ^ "Oracle OpenWorld: UnBreakable Linux / 5015.2 не на горизонте | Блог Formtek" . Formtek.com. 26 октября 2006 . Проверено 9 февраля, 2016 .
  61. ^ "Oracle и Sun Microsystems | Стратегические приобретения | Oracle" . Sun.com . Проверено 9 февраля, 2016 .
  62. ^ «Свободный, но скованный - Ловушка Java - Проект GNU - Фонд свободного программного обеспечения» . Gnu.org. 12 апреля 2004 . Проверено 9 февраля, 2016 .
  63. ^ "Sun" выпускает "Java to the World" . BBC News . 13 ноября 2006 . Проверено 6 мая 2010 года .
  64. ^ "Open JDK уже здесь!" . Sun Microsystems. 8 мая 2007 года . Проверено 9 мая 2007 года .
  65. ^ Wielaard, Марк (30 мая 2007). "Исходный код OpenJDK6 b10 размещен" . Проверено 12 июля 2008 года .
  66. ^ "Redhat Java" .
  67. ^ "Fedora Java" .
  68. ^ «Debian Java» .
  69. ^ "Ubuntu Java" .
  70. Шарплс, Рич (19 июня 2008 г.). «Java, наконец, свободна и открыта» . Архивировано из оригинала на 20 июня 2008 года.
  71. ^ libgdx (9 декабря 2013 г.). «Объединение jre · libgdx / libgdx Wiki · GitHub» . Github.com . Проверено 9 февраля, 2016 .
  72. ^ «Вопрос о комплектации пользовательского OpenJDK» . Java-Gaming.org . Проверено 9 февраля, 2016 .
  73. ^ Клули, Graham (15 января 2013). « » Если это не является абсолютно необходимым для запуска Java в веб - браузерах, вывести его из строя «DHS-спонсором команды CERT говорит - Naked Security» . Nakedsecurity.sophos.com . Проверено 9 февраля, 2016 .
  74. ^ «Дженерики в Java» . Object Computing, Inc. Архивировано из оригинала 2 января 2007 года . Проверено 9 декабря 2006 года .
  75. ^ «Что не так с Java: удаление типа» . 6 декабря 2006 . Проверено 9 декабря 2006 года .
  76. ^ "Системы типов Java и Scala неуместны" (PDF) .
  77. ^ «Библиотеки Java должны обеспечивать поддержку беззнаковой целочисленной арифметики» . База данных ошибок, Sun Developer Network . Oracle . Проверено 18 января 2011 года .
  78. Оуэнс, Шон Р. (5 ноября 2009 г.). «Java и unsigned int, unsigned short, unsigned byte, unsigned long и т. Д. (Точнее, их отсутствие)» . darksleep.com . Проверено 9 октября 2010 года .
  79. ^ Kahan, W .; Дарси, Джозеф Д. (1 марта 1998 г.). «Как плавающая точка в Java причиняет боль всем и везде» (PDF) . Проверено 9 декабря 2006 года .
  80. ^ «Типы, значения и переменные» . Sun Microsystems . Проверено 9 декабря 2006 года .
  81. ^ Какие языки программирования самые быстрые? | Игра Computer Language Benchmarks, архивная копия от 14 августа 2011 г., на Wayback Machine.
  82. ^ скорость ÷ C ++ GNU g ++ скорость | Игра Computer Language Benchmarks, архивная копия от 26 сентября 2011 г., на Wayback Machine.
  83. ^ «C ++ против производительности Java; это ничья! | Блог Кристиана Фельде» . Blog.cfelde.com . Проверено 9 февраля, 2016 .
  84. ^ «Архитектура безопасности Java: Содержание» . Docs.oracle.com. 2 октября 1998 . Проверено 9 февраля, 2016 .
  85. Горовиц, Майкл (31 августа 2012 г.). «Недостаток безопасности Java: Яда Яда Яда | Computerworld» . Blogs.computerworld.com. Архивировано из оригинала 24 июля 2014 года . Проверено 9 февраля, 2016 .
  86. ^ Брук, Крис. «Первая остановка для новостей безопасности» . Threatpost. Архивировано из оригинала 8 марта 2013 года . Проверено 9 февраля, 2016 .
  87. ^ «Почему и как отключить Java на вашем компьютере сейчас - Технологии и наука - Инновации» . NBC News. 12 января 2013 . Проверено 9 февраля, 2016 .
  88. ^ «Министерство внутренней безопасности США призывает пользователей компьютеров отключить Java» . Forbes.com . Проверено 9 февраля, 2016 .
  89. ^ Брук, Крис. «Первая остановка для новостей безопасности» . Threatpost. Архивировано из оригинала 9 апреля 2013 года . Проверено 9 февраля, 2016 .
  90. ^ «Критические обновления исправлений и предупреждения безопасности» . Oracle.com . Проверено 9 февраля, 2016 .
  91. ^ Finkle, Джим (14 января 2013). «Аварийный патч для Java не устраняет дыры в киберпреступности, - предупреждают эксперты» . Independent.ie . Проверено 9 февраля, 2016 .
  92. Келли, Меган (14 января 2013 г.). «Исправление ошибок Oracle для эксплойта Java после того, как DHS предупредил о его дырах» . VentureBeat . Проверено 9 февраля, 2016 .
  93. Рианна Кребс, Брайан (16 февраля 2016 г.). «Избавление от плагина Oracle для Java» . KrebsOnSecurity .
  94. ^ Гонсалвес, Antone (5 сентября 2012). «Java больше не нужна. Вставьте плагин» . Читайте, пишите . Носимый мир.
  95. ^ "Java: стоит ли ее удалить?" . theguardian.com . Guardian Media Group . 8 февраля 2013 г.
  96. ^ Ботт, Эд. «Внимательный взгляд на то, как Oracle устанавливает обманчивое программное обеспечение с обновлениями Java» . ZDNet.com . ZDNet . Проверено 14 декабря 2014 года .
  97. ^ "Windows 7 - Как обновить Java из учетной записи без прав администратора?" . Суперпользователь .
  98. ^ «Обновить Google Chrome - Компьютер - Справка Google Chrome» . support.google.com .
  99. ^ «Бюллетень по безопасности Adobe» . helpx.adobe.com .

Внешние ссылки [ править ]

Послушайте эту статью ( 42 минуты )
Разговорный значок Википедии
Этот аудиофайл был создан на основе редакции этой статьи от 19 августа 2013 года и не отражает последующих правок. ( 2013-08-19 )
  • Официальный веб-сайт
  • sun.com - Официальный сайт разработчика
  • «Как появилась спецификация JVM» . infoq.com . - Презентация Джеймса Гослинга о происхождении Java на Саммите языков JVM 2008
  • Организация форумов Java
  • Введение в Java , 14 мая 2014 г., блог Java77