Java 7 что это за программа
Java — сильно типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle).
Основные особенности языка
Программы на Java транслируются в байт-код Java, выполняемый виртуальной машиной Java (JVM) — программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор.
Достоинством подобного способа выполнения программ является полная независимость байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина. Другой важной особенностью технологии Java является гибкая система безопасности, в рамках которой исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером), вызывают немедленное прерывание.
Часто к недостаткам концепции виртуальной машины относят снижение производительности. Ряд усовершенствований несколько увеличил скорость выполнения программ на Java:
- применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы (JIT-технология) с возможностью сохранения версий класса в машинном коде,
- обширное использование платформенно-ориентированного кода(native-код) в стандартных библиотеках,
- аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами архитектуры ARM).
По данным сайта shootout.alioth.debian.org, для семи разных задач время выполнения на Java составляет в среднем в полтора-два раза больше, чем для C/C++, в некоторых случаях Java быстрее, а в отдельных случаях в 7 раз медленнее. С другой стороны, для большинства из них потребление памяти Java-машиной было в 10—30 раз больше, чем программой на C/C++. Также примечательно исследование, проведённое компанией Google, согласно которому отмечается существенно более низкая производительность и бо́льшее потребление памяти в тестовых примерах на Java в сравнении с аналогичными программами на C++.
Идеи, заложенные в концепцию и различные реализации среды виртуальной машины Java, вдохновили множество энтузиастов на расширение перечня языков, которые могли бы быть использованы для создания программ, исполняемых на виртуальной машине. Эти идеи нашли также выражение в спецификации общеязыковой инфраструктуры CLI, заложенной в основу платформы .NET компанией Microsoft.
Классификация платформ Java
Внутри Java существует несколько основных семейств технологий:
- Java SE— Java Standard Edition, основное издание Java, содержит компиляторы, API, Java Runtime Environment; подходит для создания пользовательских приложений, в первую очередь — для настольных систем.
- Java EE— Java Enterprise Edition, представляет собой набор спецификаций для создания программного обеспечения уровня предприятия. В 2017-м проект Java EE был передан Eclipse Foundation [62] , после чего был переименован в Jakarta EE [63] . Модули Java EE удалены из Java SE, начиная с 11-й версии [64] .
- Java ME— Java Micro Edition, создана для использования в устройствах, ограниченных по вычислительной мощности, например, в мобильных телефонах, КПК, встроенных системах;
- Java Card— технология предоставляет безопасную среду для приложений, работающих на смарт-картах и других устройствах с очень ограниченным объёмом памяти и возможностями обработки.
Java и Android
Язык Java активно используется для создания мобильных приложений под операционную систему Android. При этом программы компилируются в нестандартный байт-код, для использования их виртуальной машиной Dalvik (начиная с Android 5.0 Lollipop виртуальная машина заменена на ART). Для такой компиляции используется дополнительный инструмент, а именно Android SDK (Software Development Kit), разработанный компанией Google.
Разработку приложений можно вести в среде Android Studio, NetBeans, в среде Eclipse, используя при этом плагин Android Development Tools (ADT), или в IntelliJ IDEA. Версия JDK при этом должна быть 5.0 или выше.
8 декабря 2014 года Android Studio признана компанией Google официальной средой разработки под ОС Android.
Применения платформы Java
Следующие успешные проекты реализованы с привлечением Java (J2EE) технологий: RuneScape, Amazon, eBay, LinkedIn, Yahoo! .
Следующие компании в основном фокусируются на Java (J2EE) технологиях: SAP, IBM, Oracle. В частности, СУБД Oracle Database включает JVM как свою составную часть, обеспечивающую возможность непосредственного программирования СУБД на языке Java, включая, например, хранимые процедуры.
Производительность
Программы, написанные на Java, имеют репутацию более медленных и занимающих больше оперативной памяти, чем написанные на языке C. Тем не менее, скорость выполнения программ, написанных на языке Java, была существенно улучшена с выпуском в 1997—1998 годах так называемого JIT-компилятора в версии 1.1 в дополнение к другим особенностям языка для поддержки лучшего анализа кода (такие, как внутренние классы, класс StringBuffer, упрощенные логические вычисления и т. д.). Кроме того, была произведена оптимизация виртуальной машины Java — с 2000 года для этого используется виртуальная машина HotSpot. По состоянию на февраль 2012 года, код Java 7 приблизительно в 1,8 раза медленнее кода, написанного на языке Си.
Некоторые платформы предлагают аппаратную поддержку выполнения для Java. К примеру, микроконтроллеры, выполняющие код Java на аппаратном обеспечении вместо программной JVM, а также основанные на ARM процессоры, которые поддерживают выполнение байткода Java через опцию Jazelle.
Основные возможности
- Автоматическое управление памятью.
- Расширенные возможности обработки исключительных ситуаций.
- Богатый набор средств фильтрации ввода-вывода.
- Набор стандартных коллекций: массив, список, стеки т. п.
- Наличие простых средств создания сетевых приложений (в том числе с использованием протоколаRMI).
- Наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы.
- Встроенные в язык средства создания многопоточных приложений, которые потом были портированы на многие языки (например Python).
- Унифицированный доступ к базам данных:
- на уровне отдельных SQL-запросов — на основе JDBC, SQLJ;
- на уровне концепции объектов, обладающих способностью к хранению в базе данных — на основе Java Data Objects(англ.) и Java Persistence API.
- Поддержка обобщений (начиная с версии 1.5).
- Поддержка лямбд, замыканий, встроенные возможности функционального программирования (с 1.8).
Средства разработки ПО
- JDK— помимо набора библиотек для платформ Java SE и Java EE, содержит компилятор командной строки javac и набор утилит, также работающих в режиме командной строки.
- NetBeans IDE— свободная интегрированная среда разработки для всех платформ Java — Java ME, Java SE и Java EE. Пропагандируется Oracle, владельцем технологии Java, как базовое средство для разработки ПО на языке Java и других языках (C, C++, PHP, Fortran и др.).
- Eclipse IDE— свободная интегрированная среда разработки для Java SE, Java EE и Java ME. Пропагандируется IBM, одним из важнейших разработчиков корпоративного ПО, как базовое средство для разработки ПО на языке Java и других языках (C, C++, Ruby, Fortran и др.).
- IntelliJ IDEA— среда разработки для платформ Java SE, Java EE и Java ME. Разработчик — компания JetBrains. Распространяется в двух версиях: свободной бесплатной (Community Edition) и коммерческой проприетарной (Ultimate Edition).
- JDeveloper— среда разработки для платформ Java SE, Java EE и Java ME. Разработчик — компания Oracle.
- BlueJ— среда разработки программного обеспечения на языке Java, созданная в основном для использования в обучении, но также подходящая для разработки небольших программ.
- Geany— свободная среда разработки программного обеспечения, написанная с использованием библиотеки GTK2.
Зачем нужна Java на компьютере или ноутбуке
Если вы увидели Java в списке установленных программ, но не знаете, зачем она нужна – эта статья для вас. Многие пользователи спрашивают, зачем нужна Java на компьютере или ноутбуке, как она установилась, и что она делает. Давайте разбираться.
Зачем нужна Java?
Java – это бесплатная платформа, которая предназначена для запуска приложений, написанных на одноименном языке программирования Java. Многие программы и веб-приложения работают на Java. Что из себя представляет эта платформа?
На компьютеры обычных пользователей чаще всего устанавливается JRE – Java Runtime Environment. Грубо говоря, это контейнер, внутри которого запускаются и работают Java программы. Он обеспечивает безопасность, стабильность и окружение для некоторой части софта на вашем компьютере.

Раньше Java активно использовали для написания “апплетов” – небольших приложений, работающих прямо в браузере. Например календарь, гостевая книга или онлайн чат. Сейчас для этих целей используется JavaScript, который не требует наличия установленной Java. Но все же много сайтов в бездонном Интернете работают на этой технологии. И если у вас нет Java, тогда такие сайты не смогут корректно работать и вы не сможете взаимодействовать с ними. Сайт не реагирует на ваши действия? Возможно причина кроется в отсутствии Java.
Более широко Java использовали и используют для создания настольных приложений. Потому некоторые программы просто не смогут работать без установленной Java. Например, популярная игра Minecraft работает исключительно внутри виртуальной “машины” Java. А если вы занимаетесь программированием, то для запуска некоторых IDE (сред для разработки ПО) тоже нужна Java.
Откуда Java на моем компьютере?
Java часто устанавливается сразу после установки Windows или другой ОС как служебная программа. Возможно ее установил человек, который ставил вам Windows, или она была предустановлена на вашем ПК или ноутбуке. Или некоторое приложение, требующее Java, установило ее на ПК. Просто знайте, это вовсе не вредоносное приложение, и удалять его во время чистки компьютера не нужно. Не зря мы включили Java в список нужных программ для Windows.
Время от времени вы можете видеть уведомления с предложением обновить Java. С каждым таким обновлением платформа Java улучшается, устраняются уязвимости и исправляются ошибки. Рекомендую соглашаться и обновлять ее. Это касается и другого ПО – периодически обновляйте антивирусы, программы, которыми пользуетесь, и операционную систему. Теперь вы знаете, зачем нужна Java на ПК, и что она делает.
Что собой представляет Java?

Говоря простым языком, Java это платформа для разработки и работы программ, игр и иных приложений, написанных с ее использованием. Более подробно о ней, а также о ее появлении на вашем компьютере мы поговорим в данной статье.
Описание программы
Первая версия программы Java была создана северно-американским разработчиком Sun Microsystems в конце предыдущего столетия. Изначально она именовалась как “Oak”, то есть “дуб” и предназначалась для программирования электронного оборудования в быту.
Программисты и продвинутые пользователи ПК использовали Java на устройствах, чтобы писать коды для так называемых «апплетов». Так в профессиональной среде именуют приложения, работа которых возможна через браузер. Например:
- Календарь;
- Виджет часов;
- Гостевая книга
- Интернет-сообщество, которое позволяет общаться в режиме реального времени.
Но Java необходима на компьютере не только для написания программ. Она нужна также и для их работы. Сейчас многие приложения, игры и интернет сайты используют ресурсы Java. Это значит, что для их работы требуется наличие актуальной версии данной программы.
Например, популярный Minecraft не начнет работать, если не установлена Java. Не запустится и такая система программирования как IDE. Она включает текстовый редактор, отладчик и другие функции, которые полезны для создания новых приложений на компьютер.
Почему на компьютере уже установлена программа Java?
Во многие операционные системы, в их число входит и Windows (начиная с версии Windows 98), уже интегрирована программа Java, и появляется она сразу после установки. Также возможны ситуации, при которых во время установки той или иной игры Java будет установлена вместе с ней автоматически. Именно по этому удалять Java категорически запрещено. Это может привести к отказу в работе многих других приложений, установленных на вашем ПК.
Иногда пользователь будет получать уведомления о том, что появилась обновленная версия программы Java. Эти обновления нужно устанавливать обязательно ,чтобы не получить проблем с запуском других приложений в будущем.

Сообщение в системном трее про наличие обновления Java
Лучшая благодарность автору — репост к себе на страничку:
Java
Java — объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems и официально выпущенный 23 мая 1995 года. Иногда на русском языке неправильно произносят название как «Ява», по аналогии с названием острова Ява.
Java — так называют не только сам язык, но и платформу для создания приложений уровня предприятий на основе данного языка.
Основные особенности языка
Изначально новый язык программирования назывался Oak (в переводе с англ. — «Дуб») и разрабатывался Джеймсом Гослингом для бытовой электроники, но впоследствии был переименован в Java и стал использоваться для написания клиентских приложений и серверного программного обеспечения. Назван в честь марки кофе Ява (Java), любимого программистами, поэтому на официальной эмблеме языка Java изображена чашка с дымящимся кофе.

Программы на Java транслируются в байт-код, выполняемый виртуальной java-машиной (JVM) — программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор, но с тем отличием, что байтовый код, в отличие от текста, обрабатывается значительно быстрее. Российский рынок мобильных приложений для бизнеса и госсектора: крупнейшие игроки, тенденции и перспективы. Обзор TAdviser
Достоинство подобного способа выполнения программ — в полной независимости байт-кода от ОС и оборудования, что позволяет выполнять Java-приложения на любом устройстве, которое поддерживает виртуальную машину. Другой важной особенностью технологии Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание. Это позволяет пользователям загружать программы, написанные на Java, на их компьютеры (или другие устройства, например, мобильные телефоны) из неизвестных источников, при этом не опасаясь заражения вирусами, пропажи ценной информации, и т. п.
Часто к недостаткам концепции виртуальной машины относят то, что исполнение байт-кода виртуальной машиной может снижать производительность программ и алгоритмов, реализованных на языке Java. Данное утверждение было справедливо для первых версий виртуальной машины Java, однако в последнее время оно практически потеряло актуальность. Этому способствовал ряд усовершенствований: применение технологии JIT (Just-In-Time compilation), позволяющей переводить байт-код в машинный код во время исполнения программы с возможностью сохранения версий класса в машинном коде, широкое использование native-кода в стандартных библиотеках, а также аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами фирмы ARM).
Идеи, заложенные в концепцию и различные реализации JVM, вдохновили множество энтузиастов на расширение перечня языков, которые могли бы быть использованы для создания программ, исполняемых в среде JVM [1] . Эта идея перекликается с концепцией CLI, заложенной в основу платформы .NET компании Microsoft.
Контроль за разработкой и права на Java
2019
Oracle: мы остались без рынка смартфонов из-за кражи Java-технологий для Android
В конце марта 2019 года Oracle попросила Верховный суд США не удовлетворять апелляцию на ранее вынесенное судебное решение, согласно которому Google нарушила авторские права Oracle при использовании компонентов из Java в операционной системе Android.
По словам адвокатов Oracle, компания фактически осталась без растущего рынка смартфонов и столкнулась с непоправимым негативным влиянием на свой бизнес из-за незаконных действий Google.
В Oracle считают, что нарушение авторского права компанией Google не позволило Oracle выйти на рынок смартфонов
Oracle утверждает, что Google разрушила ее надежды выйти на рынок смартфонов в качестве разработчика с платформой Java, которая дает возможность разработки запуска программ, написанных на языке Java, в том числе через API-интерфейсы. В иске указывается, что Google скопировала эти API без надлежащей лицензии.
Google неоднократно заявляла, что если разрешить компаниям владеть авторским правом на программные интерфейсы, то это будет оказывать отрицательное воздействие влияние. Однако Oracle заявила суду, что разработка ПО «не испытала на себе разрушительные последствия, которые предсказывала Google; отрасль чувствует себя лучше, чем когда-либо».
В Oracle напоминают, что лицензии на Java бесплатны для разработчиков, но компании, внедряющие эту технологию в свои платформы, должны платить.
Google отказалась заключать соглашение о лицензировании с Oracle, поскольку не хотела, чтобы Android-приложения могли работать на других платформах. В результате этого Oracle не получила возможность для конкуренции на рынке смартфонов, передает издание CRN. [2]
Google: победа Oracle в споре об использовании Java в Android убьет разработку ПО
В конце января 2019 года Google обратилась в Верховный суд США с заявлением пересмотреть 9-летнее разбирательство с Oracle по поводу законности использования программных интерфейсов (API) Java в операционной системе Android. В Google считают, что победа Oracle убьет разработку ПО.
Google просит высшую судебную инстанцию США поддержать компанию по двум ранее отмененным судебным решениям. В одном из них интернет-гигант говорил, что API не защищены авторским правом, а в другом — Google «законно» использует программные интерфейсы Java.
![]()
Google не сдается в споре с Oracle об использовании Java в Android
В своем блоге главный юрисконсульт Google Кент Уолкер (Kent Walker) сравнивает API-интерфейсы, защищенные авторским правом, с «утверждением, что горячие клавиши могут работать только с одним типом компьютера».
По его словам, Android создал преобразующую новую платформу, позволив миллионам Java-программистов использовать имеющиеся у них навыки для разработки новых приложений. Создатели Java поддержали выпуск Android, сказав, что этот шаг обеспечит мощный импульс сообществу Java, добавил представитель Google.
В компании считают, что вынесенное в конце марта 2018 года окончательное решение суда, в котором Google была признана виновной в незаконном использовании Java API в платформе Android, стало катастрофой для разработчиков.
2018: Победа над Google в суде по делу о Java
27 марта 2018 года Апелляционный суд США по федеральному округу вынес положительное для Oracle решение по разбирательству, в котором компания обвиняла Google в незаконном использовании Java API в платформе Android. Подробнее здесь.
2012: Oracle приобрела разработчика Java
Oracle получила контроль над Java в ходе покупки Sun Microsystems.
25 января 2012 года Oracle представила JCP предложение, согласно которому предполагается некоторое сокращение количества членов исполнительного комитета.
«Представляется, что в ожидании конвергенции Java ME и Java SE нынешнее разделение на два отдельных исполнительных комитета не имеет смысла. Поскольку Java является одной платформой, она и должна находиться под контролем одного исполнительного комитета», — говорится в тексте рекомендации.
Это — второе предложение Oracle.
Согласно записям 2011 года в блоге председателя JCP Патрика Каррана (Patrick Curran), первое и уже принятое было нацелено на повышение прозрачности процессов спецификации.
Третье, которое ещё только должно быть представлено, будет касаться «более комплексных перемен», включающих возможные изменения в соглашении об участии в разработке спецификации Java (Java Specification Participation Agreement), юридического соглашения, согласно которому действует JCP.
2010: Отец Java требует для своего детища «свободы от Oracle»
Создатель языка Java Джеймс Гослинг, ушедший из Sun Microsystems после поглощения ее корпорацией Oracle, ведет пропагандистскую кампанию под девизом «Свободу Java!». Гослинг ставит своей целью добиться от главы Oracle Ларри Эллисона преобразования организации Java Community Process в независимую, не подверженную влиянию отдельных компаний. Создать такое независимое объединение сам Эллисон предложил еще в 2007 году.
В преддверии конференций JavaOne и Oracle OpenWorld 2010 Гослинг выпустил серию пропагандистских материалов в поддержку своей борьбы: футболок, значков, кружек с надписями «Освободите Java!», «Oracle, выполни обещание!», а также с портретом Эллисона и подписью «На дворе уже давно не 1984-й!». Создатель Java призывает приходить в его футболках на упомянутые конференции, чтобы продемонстрировать свое неравнодушие к судьбе платформы.
2010: Oracle начинает суд с Google по теме Java
В октябре 2010 года компания Oracle уточнила формулировки иска против Google по поводу нарушения патентов и авторских прав на технологии Java, реализованные в мобильной операционной системе Android. В первом варианте иска, направленном в суд в августе 2010 года, содержалось мало технических подробностей, но теперь компания прилагает к иску даже выдержки из исходных текстов программ.
Oracle утверждает, что примерно треть пакетов в программном интерфейсе (API) Android являются производными от пакетов Java, авторские права на которые принадлежат Oracle. Это касается, помимо прочего, названий классов и методов, параметров, определений и общей организации кода и документации. Часть исходного кода была непосредственно взята из защищенных авторскими правами текстов программ Oracle. Лицензии на использование Java сами по себе бесплатны, но в системе Android вместо виртуальной машины Java применяется машина Dalvik собственной разработки Google, программы для которой, однако, пишутся на языке Java. В Google считают, что претензии Oracle к ней и к сообществу разработчиков программ с открытым кодом в целом необоснованны.
2011: Выборы в комитет Java Community Process
C 3 ноября 2011 года VMware больше не является членом исполнительного комитета Java Community Process SE/EE [4] , но в его состав вошла компания Twitter, согласно результатам выборов.
В состав исполнительного комитета по контролю над разработкой будущих версий спецификаций платформ языка Java, в частности для настольных компьютеров и серверов, вошла компания Azul Systems, производитель виртуальной Java-машины Zing. Ericsson, Intel и SAP повторно избраны в состав комитета. Кроме того, IBM, Nokia и SK Telecom сохранили за собой места в комитете по мобильным технологиям (Java ME), ARM Limited и Werner Keil получили места открытого членства.
Несмотря на выход из состава исполнительного комитета, VMware остается важным инвестором в разработку платформ Java посредством участия своего подразделения SpringSource, которое реализует широкий ассортимент продуктов для разработки и развертывания Java-приложений.
Согласно сообщению в официальном блоге компании Oracle, почти четверть (около 23%) правомочных членов голосовали на выборах.
«Это гораздо больше, чем 11% принявших участие во внеочередных выборах исполнительного комитета в 2011 году, но меньше, чем ожидалось», — говорится в сообщении.
Oracle имеет постоянное членство в комитете, но согласно регулирующим документам сообщества, не имеет возможности доминирования в JCP. В документе говорится, в частности, что Oracle и другие члены исполнительного комитета осуществляют функции групп технологического надзора за работой экспертных групп. «Исполнительные комитеты не осуществляют ежедневное непосредственное управление работой экспертных групп. У исполкомов существует возможность контроля работы каждой группы экспертов, в четко обозначенных интервалах, по мере того, как спецификации проходят через JCP», — отмечается в документе.
Тем не менее, Oracle агрессивно защищает свою долю в Java. Свидетельством чего служит судебный процесс против Google за предполагаемые нарушения интеллектуальной собственности в части применения Java в мобильной ОС Android. Имеются подозрения, что в прошлом Oracle пыталась оказать кулуарное влияние на выборы членов JCP.
Сообщество JCP лишилось такого авторитетного участника как Apache Software Foundation, которая отказалась от членства в связи с теми признаками, которые охарактеризовала как чрезмерный контроль Oracle над Java.
[4] Java Community Process (JCP) — официальное сообщество, организованное в 1998 году для участия заинтересованных компаний в формировании спецификаций платформ языка Java.
SE/EE занимается платформами для настольных компьютеров (Java Platform, Standard Edition) и для серверов (Java Platform, Enterprise Edition)
2012: Победа Google
В мае 2012 года Федеральный суд Калифорнии не усмотрел нарушений со стороны Google и не признал интеллектуальной собственностью Oracle интерфейсы программирования и строки исходного кода Java. Oracle подала апелляцию.
2014: Верховный суд рассматривает спор Oracle и Google
В мае 2014 года Федеральный апелляционный суд США отменил вынесенное в пользу Google решение. За обжалованием этого постановления Google обратилась в Верховный суд США. [5]
В начале декабря 2014 года Oracle направила в Верховный суд США обращение, в котором попросила оставить в силе решение апелляционного суда. Одновременно американский представитель Фемиды получил документ, в котором видные деятели компьютерных наук поддерживают Google.
«Оставить незащищенными тысячи строчек кода, скопированные Google, означало бы лишение защиты авторских прав в отношении всего кода», — говорится в заявлении Oracle.
Google парирует это тем, что у нее не было выбора, кроме как воспользоваться готовыми компонентами Java для разработки ОС Android, поскольку Java уже был сильно распространен, а программистам нужны были знакомые программные интерфейсы для написания Java-софта. Такой функциональный код не попадает под защиту американского законодательства об авторских правах, утверждают в Google.

Патентная тяжба Oracle и Google отразится на софтверном рынке
На сторону Google встал ряд видных специалистов по компьютерным наукам. Один из создателей интернета Винтон Серф (Vinton Cerf), разработчик операционной системы Unix Кен Томпсон (Ken Thompson) и еще несколько десятков известных ветеранов ПК-отрасли направили в Верховный суд письмо, в котором попросили пересмотреть решение апелляционного суда и признать, что программные интерфейсы не являются объектом авторского права.
По словам авторов обращения, ситуация, при которой программисты, создавая свои программные интерфейсы для приложений, будут беспокоиться о приобретении лицензии на API, сильно затормозит развитие инноваций и создаст серьезный барьер на пути налаживания совместимости программных продуктов.
Возможность свободного использования сторонних API способствует созданию программного обеспечения, до которого разработчики оригинальных интерфейсов программирования никогда бы не додумались или не смогли бы создать из-за отсутствия необходимых ресурсов, говорят специалисты.
Вердикт Верховного суда может оказаться определяющим для развития всей софтверной отрасли. Если решения API будут признаны интеллектуальной собственностью, то пострадает совместимость и переносимость продуктов, поскольку под вопросом окажется легальность создания функциональных аналогов программных платформ путем разработки собственных совместимых API.
1998-2007
В 2017 г. нынешний владелец Java — компания Oracle — объявила об изменениях условий лицензии и окончании поддержки версии Java 8.
В 2007 г. стартовал процесс раскрытия исходных кодов в рамках проекта OpenJDK, инициированный тогдашним владельцем Java — компанией Sun Microsystems.
В 1998 г. стандарт Java стал открытым, и появился Java Community Process, определяющий принципы дальнейшей эволюции данной технологии.
Классификация платформ Java
Внутри Java существуют три основных семейства технологий:
- J2EE или Java EE (начиная с v1.5) — Java Enterprise Editon, для создания программного обеспечения уровня предприятия;
- J2SE или Java SE (начиная с v1.5) — Java Standard Editon, для создания пользовательских приложений, в первую очередь — для настольных систем;
- J2ME, Java ME или Java Micro Edition, для использования в устройствах, ограниченных по вычислительной мощности, в том числе мобильных телефонах, PDA, встроенных системах
Самыми популярными считаются серверные технологии семейства J2EE.
Последним релизом является версия 1.6, в которой было произведено улучшение системы безопасности, улучшение поддержки XML, а также добавлена поддержка скриптового языка JavaScript на основе механизма Mozilla, улучшена интеграция с рабочим столом, добавлены некоторые новые возможности в создании графических интерфейсов.
История версий
Java 1.0
Разработка Java началась в 1990 году, первая официальная версия — Java 1.0, — была выпущена только в 1995 году.
Java 2.0
К 1998 году была разработана обновлённая спецификация JDK 1.2, вышедшая под наименованием Java 2. Собственно языковых изменений в данной версии не появилось. Платформа получила следующие дополнения:
- Набор средств для создания визуального интерфейса пользователя Swing.
- Коллекции.
- Поддержка файлов Policy и цифровых сертификатов пользователя.
- Библиотека Accessibility.
- Java 2D.
- Поддержка технологии drag-and-drop.
- Полная поддержка Unicode, включая поддержку ввода на японском, китайском и корейском языках.
- Поддержка воспроизведения аудио-файлов нескольких популярных форматов.
- Полная поддержка технологии CORBA.
- JIT-компилятор, улучшенная производительность.
- Усовершенствования инструментальных средств JDK, в том числе поддержка профилирования Java-программ
Java 5
Спецификация Java 5 была выпущена в сентябре 2004 года. В данной версии разработчики внесли в язык целый ряд принципиальных дополнений:
- Перечислимые типы (enum). Ранее отсутствовавшие в Java типы оформлены по аналогии с C++, но при этом имеют ряд дополнительных возможностей.
- Перечислимый тип является полноценным классом Java, то есть может иметь конструктор, поля, методы, в том числе скрытые и абстрактные.
- Перечисление может реализовывать интерфейсы.
- Для перечислений имеются встроенные методы, дающие возможность получения значений типа по имени, символьных значений, соответствующих именам, преобразования между номером и значением, проверки типа на то, что он является перечислимым.
Java 7
- В июне 2011 г. компания Oracle выпустила релиз-кандидат платформы Java 7. Официальный выпуск этой долгожданной новой версии должен состояться 28 июля 2011 года. После 5 лет фактического застоя, прошедших с момента выпуска Java 6, многие пользователи и разработчики Java-приложений ждут от новой платформы серьезных изменений, приближающих платформу Java к современным реалиям.
Самым заметным новшеством в Java 7, по словам самих разработчиков, должен стать набор новых программных интерфейсов API для организации ввода/вывода под общим названием JSR 203. Впервые технология Java получила настоящий доступ к реальным файловым системам – это позволяет работать с символическими ссылками и получать доступ к функциям каждой конкретной файловой системы. Новый базовый механизм для ветвления и объединения потоков JSR 166y был переработан по инициативе известного специалиста по конкурентной многозадачности Дуга Леа (Doug Lea). Обеспечивая настоящий параллелизм, технология Java теперь полностью готова к работе в многоядерных вычислительных средах. Также платформа Java 7 предлагает технологию JSR 292, которая обеспечивает поддержку динамически типизируемых языков программирования в виртуальных Java-машинах (JVM).
Релиз-кандидат Java 7 включает в себя всего 13 изменений по сравнению с последней рабочей сборкой продукта. Более половины из этих изменений – это чисто административные исправления, а вот остальные являются настоящими откровениями, исправляя такие серьезные ошибки, как сбои виртуальных машин и некорректная JIT-трансляция в среде Eclipse.
Java 9 отложена до 2017
2 декабря 2015 года разработчики из Oracle сообщили, что они не вписываются в опубликованный ранее график подготовки Java 9 [6] .
Согласно заявлению, им потребуется ещё около полугода чтобы довести проект Jigsaw до подобающего продукту вида, развивающего значимые для Java средства разбиения программ и JDK на модули.
На 2 декабря 2015 года для утверждения подготовлен график, в соответствии с которым релиз JDK 9 переносится с 22 сентября 2016 года на 23 марта 2017 года. Завершение разработки необходимого функционала ожидается 25 мая 2016 года, а не 10 декабря 2015 года, как планировалось изначально.
Выход Java 14
В марте 2020 года Oracle выпустила Java 14 (Oracle JDK 14) и заявила, что новая версия повышает производительность разработчиков, работающих с языком программирования Java. Основные нововведения следующие.
- JEP 305: Pattern Matching for instanceof. Расширяет функциональность сопоставления с шаблоном для оператора instanceof. Это повышает производительность труда разработчика, устраняя необходимость в шаблонном коде, и позволяет получить более компактный и типобезопасный код.
- JEP 343: Packaging Tool (инкубатор). Предоставляет разработчикам возможность упаковывать приложения Java для распространения в специфичных для платформ форматах. Это помогает создавать современные приложения в виде единого поставляемого пакета библиотек, в котором объединены среда исполнения и код приложения.

- JEP 345: NUMA-Aware Memory Allocation for G1ю Повышает общую производительность сборщика мусора G1 в системах с архитектурой памяти NUMA (Non-Uniform Memory Access).
- JEP 349: JFR Event Streaming. Открывает данные JDK Flight Recorder (JFR) для непрерывного мониторинга. Это упростит доступ различных инструментов и приложений к данным JFR и будет стимулировать дальнейшие инновации.
- JEP 358: Helpful NullPointerExceptions. Повышает удобство использования исключений NullPointerException, точно описывая, какая переменная была равна нулю, и предоставляя другую полезную информацию.
- JEP 359: Records. Обеспечивает компактный синтаксис объявления классов, которые содержат поверхностные неизменяемые данные (shallowly immutable). Эта функция может значительно сократить шаблонный код в классах такого типа, но самое большое преимущество – возможность моделировать данные как данные.
- JEP 370: Foreign-Memory Access API. API-интерфейс, позволяющий программам Java безопасно и эффективно получать доступ к областям внешней памяти вне динамически распределяемой heap-памяти Java. [7]
Выход Java 15
В сентябре 2020 года Oracle сообщила о выходе Java 15. В этом году язык программирования отмечает 25-летний юбилей.
В качестве ознакомительной возможности Java 15 впервые добавлены запечатанные классы (Sealed Classes, JEP 360). Также в целях получения дополнительной обратной связи от сообщества в качестве ознакомительных возможностей повторно включены сопоставление с образцом для оператора instanceof (Pattern Matching, JEP 375) и записи (Records, JEP 384).

Oracle выпустила Java 15
Другие ключевые нововведения в Java 15 следующие:
- JEP 339: Edwards-Curve Digital Signature Algorithm (EdDSA). Эта функция позволяет повысить безопасность и производительность за счет внедрения криптографических подписей с использованием алгоритма EdDSA (описание см. в RFC 8032).
- JEP 371: Hidden Classes. Функция помогает увеличить производительность – она улучшает взаимодействие Java с фреймворками, которые генерируют классы при выполнении и используют их косвенно, через механизм рефлексии.
- JEP 378: Text Blocks. Эта функция была ознакомительной в JDK 13 и JDK 14. Она помогает увеличить производительность разработки благодаря добавлению строковых литералов и автоматическому форматированию строк предсказуемым образом.
- JEP 377: ZGC. Этот масштабируемый сборщик мусора с низкими показателями задержки был впервые представлен в JDK 11 для ознакомления и теперь выпущен в финальной версии.
- JEP 384: Records. Эта ознакомительная возможность, впервые представленная в JDK 14, помогает улучшить производительность за счет более компактного синтаксиса для объявления классов, содержащих поверхностные неизменяемые данные.
- JEP 383: Foreign-Memory Access API. Эта функция из инкубатора, впервые представленная в JDK 14, определяет API, с помощью которого программы Java могут безопасно и эффективно получать доступ к областям внешней памяти вне динамически распределяемой heap-памяти Java. [8]
Java 17
16 сентября 2021 корпорация Oracle представила Java 17, которая отличается уровнем производительности, стабильности и сопровождается множеством обновлений в области безопасности. Данный релиз также содержит 14 JEP (JDK Enhancement Proposal), которые ведут к дальнейшим улучшениям платформы и языка программирования Java и помогают повысить производительность труда разработчиков.
Java 17 представляет собой релиз из категории LTS (long-term support), который выходит в рамках стандартного шестимесячного цикла релизов Java и является результатом тесного сотрудничества инженеров Oracle и других участников сообщества Java на базе OpenJDK Community и Java Community Process (JCP). Предыдущая версия JDK 11 LTS была выпущена три года назад, и за это время система была улучшена за счет 70 JEP от членов сообщества.
Oracle JDK 17 и будущие релизы JDK попадают под действие полностью бесплатной лицензии, которая будет действовать вплоть до 2022 года после выхода следующего релиза LTS. Oracle также продолжит выпускать Oracle OpenJDK под действием открытой лицензии General Public License (GPL), на тех же условиях, которые были утверждены в 2017 году.
Oracle сотрудничает с сообществом разработчиков Java и JCP в работе над графиком выхода релизов LTS, чтобы предложить организациям больше гибкости в переходе на последние версии Java LTS. Таким образом, Oracle предполагает выпустить релиз LTS Java 21 в сентябре 2023, меняя частоту выхода LTS с трех лет до двух лет.
Пользователи с подписками Oracle LTS и Java SE могут мигрировать на Java 17 в наиболее комфортном для них режиме. Oracle продолжит предоставлять этим заказчикам обновления безопасности, гарантировать производительность и присылать исправления для Java 17 вплоть до сентября 2029.
Применения платформы Java
Следующие успешные проекты реализованы с привлечением Java (J2EE) технологий: Amazon, eBay, Flickr, Google (Gmail), Yandex, LinkedIn.
Следующие компании в основном фокусируются на Java (J2EE) технологиях, а не на .NET, хотя имеют дело также и с последними: SAP, IBM, Oracle.
Основные возможности
- автоматическое управление памятью
- расширенные возможности обработки исключительных ситуаций;
- богатый набор средств фильтрации ввода/вывода;
- набор стандартных коллекций, таких как массив, список, стек и т. п.;
- наличие простых средств создания сетевых приложений (в том числе с использованием протоколаRMI);
- наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы;
- встроенные в язык средства создания многопоточных приложений;
- унифицированный доступ к базам данных на основе JDBC и SQLJ.
- поддержка шаблонов (начиная с версии 1.5)