Jre 8u271 windows i586 exe что это

Обновлено: 25.06.2024

JDK 8u271 Update Release Notes

Java™ SE Development Kit 8, Update 271 (JDK 8u271)

The full version string for this update release is 1.8.0_271-b09 (where «b» means «build»). The version number is 8u271.

IANA Data 2020a

JDK 8u271 contains IANA time zone data version 2020a. For more information, refer to Timezone Data Versions in the JRE Software.

Security Baselines

The security baselines for the Java Runtime Environment (JRE) at the time of the release of JDK 8u271 are specified in the following table:

JRE Family Version JRE Security Baseline (Full Version String)
8 1.8.0_271-b09
7 1.7.0_281-b06

Keeping the JDK up to Date

Oracle recommends that the JDK is updated with each Critical Patch Update (CPU). In order to determine if a release is the latest, the Security Baseline page can be used to determine which is the latest version for each release family.

Critical patch updates, which contain security vulnerability fixes, are announced one year in advance on Critical Patch Updates, Security Alerts and Bulletins. It is not recommended that this JDK (version 8u271) be used after the next critical patch update scheduled for January 19, 2021.

Java SE Subscription customers managing JRE updates/installs for large number of desktops should consider using Java Advanced Management Console (AMC).

For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u271) on February 20, 2021. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.

New Features

To restore the named curves, remove the include jdk.disabled.namedCurves either from specific or from all disabledAlgorithms security properties. To restore one or more curves, remove the specific named curve(s) from the jdk.disabled.namedCurves property.

Curves that are disabled through jdk.disabled.namedCurves include the following: secp112r1, secp112r2, secp128r1, secp128r2, secp160k1, secp160r1, secp160r2, secp192k1, secp192r1, secp224k1, secp224r1, secp256k1, sect113r1, sect113r2, sect131r1, sect131r2, sect163k1, sect163r1, sect163r2, sect193r1, sect193r2, sect233k1, sect233r1, sect239k1, sect283k1, sect283r1, sect409k1, sect409r1, sect571k1, sect571r1, X9.62 c2tnb191v1, X9.62 c2tnb191v2, X9.62 c2tnb191v3, X9.62 c2tnb239v1, X9.62 c2tnb239v2, X9.62 c2tnb239v3, X9.62 c2tnb359v1, X9.62 c2tnb431r1, X9.62 prime192v2, X9.62 prime192v3, X9.62 prime239v1, X9.62 prime239v2, X9.62 prime239v3, brainpoolP256r1, brainpoolP320r1, brainpoolP384r1, brainpoolP512r1

The Kerberos client has been enhanced with the support of principal name canonicalization and cross-realm referrals, as defined by the RFC 6806 protocol extension.

As a result of this new feature, the Kerberos client can take advantage of more dynamic environment configurations and does not necessarily need to know (in advance) how to reach the realm of a target principal (user or service).

Support is enabled by default and 5 is the maximum number of referral hops allowed. To turn it off, set the sun.security.krb5.disableReferrals security or system property to false. To configure a custom maximum number of referral hops, set the sun.security.krb5.maxReferrals security or system property to any positive value.

See further information in JDK-8223172.

The keytool and jarsigner tools have been updated to warn users when weak cryptographic algorithms are used in keys, certificates, and signed JARs before they are disabled. The weak algorithms are set in the jdk.security.legacyAlgorithms security property in the java.security configuration file. In this release, the tools issue warnings for the SHA-1 hash algorithm and 1024-bit RSA/DSA keys.

The ‘canonicalize’ flag in the krb5.conf file is now supported by the JDK Kerberos implementation. When set to true, RFC 6806 name canonicalization is requested by clients in TGT requests to KDC services (AS protocol). Otherwise, and by default, it is not requested.

The new default behavior is different from JDK 14 and previous releases where name canonicalization was always requested by clients in TGT requests to KDC services (provided that support for RFC 6806 was not explicitly disabled with the sun.security.krb5.disableReferrals system or security properties).

Removed Features and Options

NPAPI is considered to be a vulnerable plugin and has been disabled in many browsers. No browsers currently support Java Plugin, which is NPAPI-based, on Linux, Solaris, and MacOS platforms.

Starting from 8u271, the part of Java Plugin responsible for integration and interaction with a browser (in particular libnpjp2 library) and an associated artifact will not be built and is not part of the JRE distribution on Linux, Solaris, and MacOS platforms.

Other notes

The property can be supplied to the LDAP context environment map, or set globally as a system property. When both are supplied, the environment map takes precedence.

Note: none and anonymous authentication mechanisms are exempted from these rules and are always allowed regardless of the property value.

The implication of this change is that if this version of JDK and 8u251 or older versions of the JDK are installed and the previous version is uninstalled, the symbolic links from the java group that are managed by the alternatives framework will be deleted. To restore deleted links, run the command:

Some text in the Installer window is hidden/invisible when using Dark mode on macOS. To workaround this issue, switch to Light mode when running the installer. This issue should be resolved by JDK-8249683.

Bug Fixes

This release also contains fixes for security vulnerabilities described in the Oracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see the JDK 8u271 Bug Fixes page.

JRE 8u121

Для Windows x86 (32-bit) jre-8u121-windows-i586.exe (53.8 Мб)

Для Windows x64 (64-bit) jre-8u121-windows-x64.exe (61.2 Мб)


Просьба! Шапку не портить и не вписывать в неё заведомо одноразовые "прямые ссылки"! Приведённые сейчас ссылки специально выбраны с учётом структуры серверов Oracle и будут работать пока там не переделают механизм адресации страниц закачки, а прямое указание URL страницы часто работает в лучшем случае до следующей её правки.

После завершения выпуска публичных обновлений для устаревших версий (в настоящий момент это версии 5, 6, 7) обновления доступны только корпоративным клиентам в их личном кабинете на Oracle TechNetwork по специальному контракту с продлённым сроком техподдержки конкретной версии и в открытом доступе ссылок на их скачивание Oracle не публикует.

Типы обновлений:

Critical Patch Updates (CPU) - набор исправлений критических ошибок в системе безопасности и исправлений некритических ошибок исправленных в PSU предыдущей версии, рекомендуется для большинства установок.

Patch Set Updates (PSU) - полный набор исправлений обнаруженных к моменту его выхода ошибок. Включает все исправления входящие в CPU и оперативное исправления более редко встречающихся (частных) ошибок в т.ч. и признанных не критическими. Его стоит ставить если вы уверены что у вас могут проявится не только критические, но частные ошибки. Оперативные исправления текущего PSU войдут в CPU следующей версии.

Bundled Patch Release (BPR) - сборки для корпоративных клиентов с расширенным сроком поддержки. Набор и политика исправлений аналогичны PSU. В публичном доступе нет.

Какая именно сборка обновления содержит CPU (Critical Patch Updates), а какая PSU (Patch Set Updates) смотрим вверху страницы загрузки Java SE (номера версий JDK, Java SE и Server JRE совпадают).

Согласно странице сайта Оракла новые версии следует ожидать в первый четверг после 17-го января, апреля, июля и октября, а после 17-го февраля, мая, августа и ноября старая версия (если вы её не обновили) будет сообщать о необходимости обновления.

Список исправлений обычно публикуется для JDK т.к. JRE/JRE SE включают подмножество его возможностей.

для простого юзера какие есть проблемы после установки Liberica JDK версия 8uХХХ ?

Описание Java SE Runtime Environment 8 Dev. Build b58 (x86):

Java Runtime Environment - исполнительная среда созданная Sun Microsystems позволяющая запускать и использовать приложения написанные на языке программирования Java. Состоит из виртуальной машины - Java Virtual Machine и библиотеки Java-классов. На языке.

Яндекс.Браузер - быстрый и простой в использовании веб-браузер с "облачными" сервисами, созданный на движке WebKit и оболочке Chromium. Особенности:• безопасность, гарантируемая проверкой ссылок с помощью Safe Browsing и скачиваемых файлов системой "Лаборатории Касперского";• современный минималистический интерфейс поможет удобно переходить по веб-сайтам и предложит нужные элементы управления именно тогда, когда они на самом деле понадобятся;•&n.

MSI Afterburner - функциональная утилита от компании MSI, которая предназначена для разгона видеокарт NVIDIA и AMD. Особенности: Создан на основе ядра RivaTuner Расширяемая пользователем архитектура Основные функции разгона и управления вентиляторами Поддержка основных функций захвата экрана Расширенное управление вентиляторами Мониторинг состояния оборудования Система автоматического управления профилями Дает больше свободы хардкорным оверклокерам. Что нового.

Mozilla Thunderbird - бесплатная программа для работы с электронной почтой от Mozilla, поддерживает протоколы SMTP, POP3, IMAP и RSS.Особенности:• имеет встроенный HTML редактор, который создает довольно компактный код;• поддерживает всевозможные кодировки, расширяется за счет дополнительных модулей и фильтрует рекламу, а также нежелательную корреспонденцию;• интерфейс программы прост и удобен в использовании, поддерживает.

Telegram — десктопная версия популярного мессенджера для мобильных устройств. Телеграм является одним из самых защищенных мессенджеров, обеспечивает полную конфиденциальность пользователей и использует механизмы удаления всех следов переписки не только на устройстве, но и на серверах. Особенности:• быстрая регистрация и привязка аккаунта к номеру мобильного телефона;• мгновенная синхронизация чатов между всеми устройствами;• &nb.

Adobe Photoshop для Mac — самый популярный графический редактор в мире, который используется как новичками, так и профессионалами. Приложение позволяет вносить практически любые изменения в изображения, уровень которых ограничивается лишь мастерством пользователя. Особенности: огромный функционал программы; библиотека дополнительных расширений для более профессиональных возможностей; работа с несколькими изображениями одновременно; интеграция со всеми продуктами от A.

Microsoft Word for Mac для Mac — бесплатный офисный компонент для пользователей компьютеров на Mac OS. Сочетает в себе все необходимые функции для просмотра и редактирования текстовых документов. для удобства работы предусмотрено две среды: рабочая и записи, для исключения внесения случайных изменений в документ; поиск по документу; галерея инструментов идентичная таковой в приложении для Windows; полная совместимость со всеми форматами Microsoft Word; создание макросов для автомат.

uTorrent — версия самого популярного p2p-клиента для компьютеров с установленной Mac OS. Позволяет скачивать файлы из пиринговых сетей с максимальной скоростью благодаря многопотоковой загрузке из различных источников. Особенности: небольшой размер; интерфейс идентичный Windows—версии; работает с torrent файлами и magnet ссылками; возможность загружать несколько раздач одновременно, а также управлять скоростью и, приоритетом загрузок; работа в фоновом режиме; прилож.

ABBYY FineReader Express Edition for Mac - это простая и удобная в использовании OCR-программа, которая позволяет с высокой точностью конвертировать отсканированные документы и файлы изображений в различные электронные форматы. ABBYY FineReader Express Edition for Mac сохраняет исходное оформление документов, тем самым, уменьшая необходимость перепечатывания и хранения бумажных документов.Программа позволяет конвертировать изображения из форматов TIFF, TIF, PNG, JPG, JPEG, JP2, J2K, BMP, PCX, DC.

Wine - это не эмулятор Windows, как думают многие, а альтернативная реализация API Windows 3.x и Win32 (кстати, и расшифровывается Wine как "Wine Is Not Emulator").Wine позволяет конечному пользователю выполнять в unix-системах (и Linux) многие приложения, написанные для ОС Windows.

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

Представлен релиз 32-разрядного дистрибутива Runtu LITE 18.04, основой которого является пакетная база релиза Bionic Beaver 18.04 LTS. Сборка имеет минимальный набор пользовательского ПО с возможностью установки на жёсткий диск. В составе предустановлены программы для работы с Интернет, воспроизведение аудио- и видеоконтента, настройки рабочего окружения.

Богатый набор Русско-Английских и Англо-Русских словарей для StarDict

Smart Driver – удобный радар камер и ДПС, а так же видеорегистратор в одном приложении. Предупредит где камеры ГИБДД на дороге, в том числе укажет их тип:– камера только на скорость, в том числе "Стрелка"– камера на стоп–линию и проезд на красный– камера на полосу общественного транспорта и обочину– стационарный пост ДПС– парная камеры, контролирующие среднюю скорость на участке дороги ( "Автодория")– камера смотрящая "в спину"– засада ДПС ил.

это популярный браузер с возможностью сжатия трафика через собственные сервера. Возможности программы: Сжатие страницUC Browser сэкономит более 90% трафика благодаря технологии сжатия страницСтабильное соединение с ИнтернетСобственная технология Free-link обеспечивает стабильную связь с серверамиМощный поискВ браузер встроены различные популярные и мощные поисковые сервисыМногооконностьВы можете переключаться между открытыми страницами по своему желаниюНавигация по сайтамНавигация содержит в с.

Приложение «Медитация для начинающих» можно скачать бесплатно на Android. Медитация на русском - антистресс-практика, которая изменит Вашу жизнь. Она научит расслабляться во время стресса. Пройдите базовый курс медитации для начинающих с помощью приложения, чтобы научиться снимать стресс, загляните внутрь себя, прислушайтесь к своим мыслям и своему организму, научитесь самостоятельно осознавать свои страхи и тревоги. Следите за своим дыханием. Для Вашего удобства медитация н.

TuneIn Radio для iOS - пожалуй самый мощный сервис для прослушивания онлайн радиостанций и подкастов со всего мира совершенно бесплатно. Особенности: более 100 000 уникальных радиостанций со всего света; прослушивание в режиме реального времени и отложенное воспроизведение; около 6 000 000 пользовательских подкастов; возможность работы с Apple Watch; лента событий в которой также отображается очередь воспроизведения; возможность добавления станций и подкастов в избранное; простой интуит.

Яндекс Музыка для iOS - клиент популярного музыкального сервиса для устройств Apple. С его помощью можно прослушивать онлайн музыку любимых исполнителей в высоком качестве совершенно бесплатно.Особенности: удобный поиск композиций по исполнителю, названию группы и жанру. Также учитываются предпочтения пользователя; рекомендации основанные на основе уже прослушанных и отмеченных песен; создание собственных интернет-радиостанций с возможностью поделиться ссылкой в социальных сетях и мессендже.

YouTube для iOS - популярный видеохостинг, получивший признание пользователей со всего мира. С обновленным интерфейсом, приложением стало пользовать еще удобнее, теперь можно пользоваться абсолютно всеми возможностями веб-версии сервиса на своем iPhone.Особенности: просматривайте контент других пользователей или выкладывайте свой; возможность проведения прямых трансляций; функции настройки качества воспроизводимого видео; возможность оставить комментарии к роликам, а также подписаться на п.

Здесь есть все, что вам нужно знать о различных версиях и функциях Java.

Примечание переводчика
09 апреля 2020 г. Марко опубликовал новую версию Руководства, в которую добавлено описание Java 14.
Перевод новой версии Руководства предлагается Вашему вниманию.

Исходная информация

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

Если вы хотите узнать больше о конкретной версии, перейдите на сайт AdoptOpenJDK, выберите последнюю версию Java, загрузите и установите ее. Затем вернитесь к этому руководству и узнайте еще кое-что о разных версиях Java.

Какую версию Java я должен использовать?

По состоянию на сентябрь 2019 года Java 13 является последней выпущенной версией Java, с новыми версиями, выходящими каждые 6 месяцев — Java 14 запланирована на март 2020 года, Java 15 на сентябрь 2020 года и т.д. В прошлом циклы выпуска Java были намного длиннее, до 3-5 лет!


С появлением такого количества новых версий в действительности имеются следующие основные сценарии использования:

  • Унаследованные проекты в компаниях часто связаны с использованием Java 8 (см. Раздел «Почему компании все еще застревают на Java 8?» Ниже). Таким образом, вы также будете вынуждены использовать Java 8.
  • Некоторые унаследованные проекты даже работают на Java 1.5 (выпущен в 2004 г.) или 1.6 (выпущен в 2006 г.) — сожалею, друзья!
  • Если вы уверены, что используете самые последние IDE, интегрированные среды и инструменты сборки и запускаете новый проект, вы можете без колебаний использовать Java 11 (LTS) или даже самую последнюю версию Java 13.
  • Есть специальная область разработки Android, где Java в основном застряла на версии Java 7, с доступом к определенному набору функций Java 8. Но вы можете переключиться на использование языка программирования Kotlin.

Почему компании все еще застряли на Java 8?

Существует множество разных причин, по которым компании все еще придерживаются Java 8. Вот некоторые из них:

  • Инструменты сборки (Maven, Gradle и т.д.) и некоторые библиотеки изначально имели ошибки с версиями Java версий> 8 и нуждались в обновлениях. Даже сегодня, например, с Java 9+, некоторые инструменты сборки выводят предупреждения «reflective access» при создании проектов Java, которые просто «не готовы», даже если со сборкой все в порядке.
  • До Java 8 вы в основном использовали JDK-сборки Oracle, и вам не нужно было заботиться о лицензировании. Однако в 2019 году Oracle изменила схему лицензирования, что привело к тому, что Интернет сошел с ума, сказав, что «Java больше не является бесплатной», — и последовало значительное замешательство. Однако на самом деле это не проблема, о чем вы узнаете в разделе «Дистрибутивы Java» данного руководства.
  • В некоторых компаниях действуют политики, позволяющие использовать только версии LTS, и полагаются на поставщиков своих ОС для предоставления этих сборок, что требует времени.

Подводя итог, у вас есть сочетание практических вопросов (обновление ваших инструментов, библиотек, фреймворков) и политических проблем.

Почему некоторые версии Java называются 1.X?

Java до версии 9 просто имела другую схему именования. Итак, Java 8 также может называться 1.8, Java 5 может называться 1.5 и т.д. Когда вы выполнили команду java -version с этими версиями, вы получили такой вывод:

Это просто означает Java 8. С переходом к основанным на времени выпускам с Java 9 также изменилась схема именования, и версии Java больше не имеют префикса 1.x. Теперь номер версии выглядит так:

В чем разница между версиями Java?

Должен ли я изучать конкретную?

Придя из других языков программирования с большими перерывами между выпусками, как, например, Python 2–3, вы можете спросить, применимо ли это к Java.

Очевидно, что это не работает наоборот, скажем, ваша программа использует функции Java 13, которые просто недоступны в Java 8 JVM.

Это означает несколько вещей:

  • Вы не просто «изучаете» конкретную версию Java, например Java 12.
  • Скорее, вам нужно получить хорошую основу для всех языковых возможностей вплоть до Java 8.
  • И затем, из этого руководства вы можете узнать, какие дополнительные функции появились в Java 9-13, чтобы использовать их всегда, когда это возможно.

Каковы примеры этих новых возможностей новых версий Java?

Но, как правило: старые, более длинные циклы выпуска (3-5 лет, вплоть до Java 8) означали множество новых функций в каждом выпуске.

Шестимесячный цикл выпуска означает меньшее количество функций на выпуск, поэтому вы можете быстро освоить языковые функции Java 9-13.

В чем разница между JRE и JDK?

До сих пор мы говорили только о Java. Но что именно означает «Java»?

Во-первых, вам нужно провести различие между JRE (Java Runtime Environment) и JDK (Java Development Kit).

Исторически, вы загружали только JRE, если вас интересовали только программы Java. JRE включает, помимо прочего, виртуальную машину Java (JVM) и инструмент командной строки «java».

Для разработки новых программ на Java вам нужно было загрузить JDK. JDK включает в себя все, что есть в JRE, а также компилятор javac и несколько других инструментов, таких как javadoc (генератор документации Java) и jdb (отладчик Java).

Теперь, почему я говорю в прошедшем времени?

Вплоть до Java 8 веб-сайт Oracle предлагал JRE и JDK в качестве отдельных загрузок, хотя JDK также всегда включал JRE в отдельной папке. В Java 9 это различие практически исчезло, и вы всегда загружаете JDK. Структура каталогов JDK также изменилась, так как в ней больше не было явной папки JRE.

Таким образом, хотя некоторые дистрибутивы (см. Раздел «Дистрибутивы Java») по-прежнему предлагают отдельную загрузку JRE, похоже, существует тенденция предлагать только JDK. Следовательно, теперь мы будем использовать Java и JDK взаимозаменяемо.

Как мне установить Java или JDK?

На данный момент не обращайте внимания на образы Java-Docker, оболочки MSI или пакеты для конкретной платформы. В конце концов, Java — это просто файл .zip; ни больше ни меньше.

Поэтому все, что вам нужно сделать, чтобы установить Java на свой компьютер, — это разархивировать файл jdk-.zip. Вам даже не нужны права администратора для этого.

Ваш распакованный файл Java будет выглядеть так:

Магия происходит в каталоге / bin, который в Windows выглядит следующим образом:

Поэтому все, что вам нужно сделать, это разархивировать этот файл и поместить каталог /bin в переменную PATH, чтобы вы могли вызывать команду java из любого места.

В случае, если вам интересно, установщики с графическим интерфейсом, такие как Oracle или AdoptOpenJDK, выполняет распаковку и изменение переменной PATH вместо вас.

Чтобы убедиться, что вы правильно установили Java, вы можете просто выполнить команду java -version. Если вывод выглядит так, как показано ниже, вы готовы!

Теперь остался один вопрос: откуда вам взять этот .zip файл с Java? Что подводит нас к теме дистрибутивов.

Дистрибутивы Java

Существует множество сайтов, предлагающих загрузку Java (читай: JDK), и неясно, «кто что предлагает и с каким лицензированием». Этот раздел проливает свет на это.

Проект OpenJDK

С точки зрения исходного кода Java (читай: исходный код вашего JRE / JDK) есть только один — на сайте проекта OpenJDK.

Однако это всего лишь исходный код, а не распространяемая сборка (подумайте: ваш файл .zip с скомпилированной командой java для вашей конкретной операционной системы). Теоретически вы и я могли бы создать сборку из этого исходного кода, назвать ее, скажем, MarcoJDK, и начать ее дистрибуцию. Но наш дистрибутив не будет сертифицирован, чтобы можно было называть этот дистрибутив совместимым с Java SE.

Вот почему на практике есть несколько поставщиков, которые фактически создают эти сборки, сертифицируют (см. TCK) и затем распространяют их.

И хотя поставщики не могут, скажем, удалить метод из класса String перед созданием новой сборки Java, они могут добавить брэндинг (вay!) или добавить некоторые другие утилиты (например, CLI), которые они считают полезными. Но в остальном исходный код одинаков для всех дистрибутивов Java.

OpenJDK (от Oracle) и сборки OracleJDK

Один из поставщиков, который создает Java из исходного кода, — это Oracle. Это приводит к двум разным дистрибутивам Java, что поначалу может быть очень запутанными.

    от Oracle (!). Эти сборки бесплатны и не имеют торговой марки, но Oracle не выпустит обновления для более старых версий, скажем, Java 13, как только выйдет Java 14. — это коммерческая сборка под брендом, выпускаемая начиная с изменения лицензии в 2019 году. Это означает, что ее можно использовать бесплатно во время разработки, но вы должны платить Oracle, если используете ее в рабочей среде. При этом вы получаете более длительную поддержку, то есть все обновления дистрибутива и номер телефона, по которому можно позвонить, если с вашей JVM будут проблемы.

Исторически (до Java 8) существовали реальные исходные различия между сборками OpenJDK и сборками OracleJDK, при этом можно было сказать, что OracleJDK был «лучше». Но на сегодняшний день обе версии практически одинаковы, с небольшими отличиями.

Впрочем все сводится к тому, что вам требуется платная коммерческая поддержка (номер телефона) для используемой версии Java.

AdoptOpenJDK

В 2017 году группа участников, разработчиков и поставщиков Java User Group (Amazon, Microsoft, Pivotal, Red Hat и другие) создала сообщество под названием AdoptOpenJDK.

Они предоставляют бесплатные надежные сборки OpenJDK с более длительной доступностью / обновлениями и даже предлагают вам выбор из двух разных виртуальных машин Java: HotSpot и OpenJ9.

Я очень рекомендую ее, если вы хотите установить Java.

Azul Zulu, Amazon Corretto, SAPMachine

Но не забудьте проверить на сайтах дистрибьюторов, чтобы узнать о преимуществах каждого отдельного дистрибутива.

Рекомендация

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

В свою очередь, это означает, что знание всех языковых функций Java 8 дает хорошую базу в изучении Java, а все остальные версии (Java 9-13) в значительной степени дают дополнительные функции поверх этого базового уровня.

Вот краткий обзор того, что конкретные версии могут предложить:

Java 8

Java 8 была массовым выпуском, и вы можете найти список всех функций на веб-сайте Oracle. Здесь я хотел бы упомянуть два основных набора функций:

Особенности языка: лямбды и т.д.

До Java 8 всякий раз, когда вы хотели создать экземпляр, например, нового Runnable, вы должны были написать анонимный внутренний класс, например, так:

С лямбдами тот же код выглядит так:

Вы также получили ссылки на методы, повторяющиеся аннотации, методы по умолчанию для интерфейсов и некоторые другие языковые функции.

Коллекции и потоки

В Java 8 вы также получили операции в функциональном стиле для коллекций, также известные как Stream API. Быстрый пример:

До Java 8, вам нужно было написать циклы for, чтобы что-то сделать с этим списком.

С помощью API Streams вы можете сделать следующее:

Java 9

Java 9 также была довольно большой версией, с несколькими дополнениями:

Коллекции

Коллекции получили несколько новых вспомогательных методов для простого создания списков, наборов и карт.

Streams

Потоки получили несколько дополнений, в виде методов takeWhile, dropWhile и iterate.

Optionals

Optionals получили метод ifPresentOrElse, которого крайне не хватало.

Интерфейсы

Интерфейсы получили private методы:

Другие возможности языка

И пара других улучшений, таких как улучшенный оператор try-with-resources или расширения diamond оператора.

JShell

Наконец, в Java появилась оболочка, в которой вы можете попробовать простые команды и получить немедленные результаты.

В Java 9 у Java появился собственный современный клиент — хотя он находится в режиме превью, что означает, что он может быть изменен в более поздних версиях Java.

Проект Jigsaw: модули Java и файлы Jar с несколькими выпусками

Java 9 получила Jigsaw Module System, которая чем-то напоминает старую добрую спецификацию OSGI. Целью данного руководства не является подробное описание Jigsaw — посмотрите предыдущие ссылки, чтобы узнать больше.

Файлы Multi-Release .jar позволили создать один файл .jar, содержащий разные классы для разных версий JVM. Таким образом, ваша программа может вести себя по-разному / иметь разные классы, используемые при запуске на Java 8 и на Java 10, например.

Java 10

В Java 10 было несколько изменений, таких как сборка мусора и т.д. Но единственное реальное изменение, которое вы, как разработчик, вероятно, заметите, — это введение ключевого слова var, также называемого выводом типа локальной переменной.

Вывод типа локальной переменной: ключевое слово var

Чувствуете себя как в Javascript-е, не так ли? Однако Java все еще строго типизирован и var применяется только к переменным внутри методов (спасибо, dpash, за то, что снова указал на это).

Java 11

Java 11 также была несколько меньшей версией с точки зрения разработчика.

Строки и файлы

Строки и файлы получили несколько новых методов (не все перечислены здесь):

Запустить исходные файлы

Начиная с Java 10, вы можете запускать исходные файлы Java без предварительной компиляции. Шаг к написанию сценариев.

Вывод типа локальной переменной (var) для лямбда-параметров

В заголовке все сказано:

Другие вкусности

Flight Recorder (Регистратор полетов), сборщик мусора No-Op, Nashorn-Javascript-Engine объявлен deprecated (устаревшим) и т.д.

Java 12

В Java 12 появилось несколько новых функций и исправлений, но здесь стоит упомянуть только поддержку Unicode 11 и превью нового выражения switch, о котором вы узнаете в следующем разделе.

Java 13

Вы можете найти полный список возможностей здесь, но, по сути, вы получаете поддержку Unicode 12.1, а также две новые или улучшенные превью функции (могут быть изменены в будущем):

Switch выражение (Preview — предварительная версия)

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

Старые операторы switch выглядели так:

В то время как в Java 13 операторы switch могут выглядеть так:

Многострочные строки (превью)

Наконец-то вы можете сделать это на Java:

Java 14 и позже

Будет рассмотрено здесь, как только их выпустят. Зайдите в ближайшее время!

Вывод

К настоящему времени у вас должен быть довольно хорошее представление о нескольких вещах:

  • Как установить Java, какую версию получить и где ее получить (подсказка: AdoptOpenJDK).
  • Что такое дистрибутив Java, какие существуют и в чем различия.
  • Каковы различия между конкретными версиями Java.

Обратная связь, исправления и случайный ввод всегда приветствуются! Просто оставьте комментарий внизу.

Спасибо за прочтение!

Там больше, откуда это появилось

Благодарности

Стивен Колебурн написал фантастическую статью о различных доступных дистрибутивах Java. Спасибо, Стивен!

Читайте также: