1. Введение
26 сентября 2018 года по пекинскому времени Oracle официально объявила об официальном выпуске Java 11. Это первый выпуск с долгосрочной поддержкой после изменения основного цикла версий Java, и за ним стоит следить. Его можно скачать с официального сайта.В последней версии Java11 появятся важные функции, такие как ZGC и Http Client. Новые функции в Java 11:
Судя по узлу времени, выпуск JDK 11 приходится как раз перед истечением срока действия бесплатного обновления JDK 8, а JDK 9 и 10 тоже стали "историческими версиями" одна за другой. JDK 11 станет выпуском, который предприятия не смогут игнорировать.
2. Обновленные детали
За последние много лет Oracle и сообщество OpenJDK предоставили почти бесплатный обед, заставив людей игнорировать огромный объем работы и ценность, стоящую за этим, включая, помимо прочего: последние обновления безопасности, такие как инфраструктура, такая как безопасность протоколы Это одна из основ для того, чтобы Java стала одним из основных средств предприятия. Большое количество новых функций, исправления ошибок, таких как поддержка контейнерной среды, улучшения в базовых областях, таких как GC. Многие взломы в производственной разработке на самом деле могут быть решены путем обновления JDK. Постоянно совершенствующаяся JVM, обеспечивающая почти нулевые затраты на оптимизацию производительности…
ZGC
JDK11 представляет два новых GC, включая ZGC, которые могут стать эпохальными.Хотя это все еще экспериментальная функция, это огромный прорыв для JDK с точки зрения возможностей, обеспечивающий возможность удовлетворения жестких требований конкретных производственных сред. . Например, для некоторых корпоративных основных СХД и других продуктов, если можно гарантировать паузу GC не более 10 мс, надежность значительно повысится. вопрос можно и нельзя.
Для G1 GC, по сравнению с JDK 8, обновите JDK 11 до JDK 11, чтобы бесплатно пользоваться: параллельным полным GC, быстрым сканированием CardTable, адаптивной регулировкой занятости кучи (IHOP), выгрузкой типов во время параллельной фазы маркировки и т. д. Это непрерывные улучшения для G1, включая последовательный полный сборщик мусора и другие недостатки, которые широко критиковались.Вы обнаружите, что конфигурация и настройка сборщика мусора в JDK11 становятся все более и более удобными.
Бортовой регистратор (JFR)
**Flight Recorder (JFR)** — это мощная функция, исходный код которой только что открыт Oracle.JFRЭто набор фреймворков механизма событий, интегрированных в JDK и JVM.Благодаря хорошей архитектуре и дизайну, экстремальной оптимизации на аппаратном уровне и обширной проверке производственной среды он может обеспечить исключительную надежность и низкие накладные расходы. В бенчмарках, таких как SPECjbb2015, максимальная потеря производительности JFR не превышает 1%, поэтому инженеры могут использовать его в больших распределенных производственных системах без какой-либо психологической нагрузки, а это значит, что мы можем активно открывать JFR в любое время для конкретных задач. , также можно позволить системе запускать JFR в течение длительного времени для анализа «постфактум» в сложных средах.
На основе обеспечения низких накладных расходов возможности, предоставляемые JFR, могут применяться для очень детального анализа конкуренции блокировок, блокировок, задержек, JVM GC, SafePoint и других областей. Можно даже углубиться в JIT-компилятор, чтобы полностью понять методы работы с горячими точками, встраивание, деоптимизацию и многое другое. JFR предоставляет стандартные API-интерфейсы Java, C++ и других расширений, которые можно настраивать и интегрировать с приложениями на различных уровнях, предоставляя комплексные решения для сложных стеков корпоративных приложений или сложных распределенных приложений. И все это встроено в JDK и JVM, никаких дополнительных зависимостей не требуется, и работает из коробки.
Low-Overhead Heap Profiling
Это исходит из практики ведущих производителей отрасли, таких как Google. Получение подробной информации о распределении объектов дополняет некоторые недостатки диагностики распределения объектов для JDK. Инженеры могут использовать эту возможность для улучшения своих собственных инструментов с помощью JVMTI.
HTTP/2 Client API
Новый HTTP API обеспечивает поддержку ведущих отраслевых стандартов, таких как HTTP/2, упрощенный и дружественный интерфейс API, а также эквивалентную или даже более высокую производительность по сравнению с основными API с открытым исходным кодом (такими как Apache HttpClient, Jetty, OkHttp и т. д.). В то же время это первая производственная практика JDK в Reactive-Stream, широко используемый Java Flow API и т. д. и, наконец, позволяет стандартной библиотеке HTTP-классов Java удовлетворить потребности современного Интернета с точки зрения масштабируемости и других аспектов. аспекты.
Transport Layer Security (TLS) 1.3
Это крупномасштабное обновление библиотек классов безопасности, стандартов и т. д. Это также проект JDK, возглавляемый китайским экспертом по безопасности Фан Сюэлей. Он полностью отличается от предыдущей переделки и является очень масштабным проектом.
Dynamic Class-File Constants
Константы файла динамического класса. Расширяет формат файла класса Java для поддержки новой формы пула констант: CONSTANT_Dynamic.
Improve Aarch64 Intrinsics
Он в основном оптимизирован для архитектуры ARM Aarch64, например, обеспечивает оптимизированные функции sin, cos и другие.
Epsilon: A No-Op Garbage Collector(Experimental)
Сборщик мусора без операций. Epsilon — это специальный сборщик мусора, который занимается только выделением памяти, а не ее сбором. Выключите JVM, как только куча будет исчерпана.
Похоже, этот коллектор не имеет никакого смысла. Но у него все еще есть много применений. Например:
Тестирование производительности. Сборщик мусора повлияет на производительность, и с таким сборщиком мусора, который почти ничего не делает, мы можем отфильтровать факторы воздействия, привносимые сборщиком мусора. Есть также некоторые факторы производительности, которые не вводятся GC, такие как изменения компилятора, с Epsilon GC, мы можем сравнить. Точно так же, как при проведении экспериментов в биологии, мы можем использовать его в качестве контрольной группы.
Кроме того, есть стресс-тесты памяти, тесты интерфейса ВМ и т. д.
Launch Single-File Source-Code Programs
Unicode 10
Обновите существующий API для поддержки Unicode 10. Java SE 10 реализует Unicode 8.0. По сравнению с Java 10, Java 11 поддерживает 16 018 новых символов и 10 новых литеральных типов.
Nest-Based Access Control
Вложенный контроль доступа. Java 11 представляет концепцию гнезда, которая представляет собой новый контекст управления доступом (контекст).Класс, который логически находится в одной и той же кодовой сущности, хотя и будет скомпилирован в разные файлы классов, может получить доступ к закрытым членам друг друга, больше не требует компилятор для вставки метода моста для вспомогательного доступа.
Dynamic Class-File Constants
Константы файла динамического класса. Расширяет формат файла класса Java для поддержки новой формы пула констант: CONSTANT_Dynamic.
Remove the Java EE and CORBA Modules
Java EE и CORBA, которые были помечены как устаревшие в Java SE 9, официально удалены с платформы Java SE.
Launch Single-File Source-Code Programs
Поддерживает запуск исходного кода в одном файле. Когда мы только изучаем Java или пишем небольшую инструментальную программу, мы обычно используем javac для компиляции исходного файла, а затем используем команду java для запуска. С помощью этой функции мы можем запускать исходную программу напрямую с помощью команды java. так:
java HelloWorld.java
Deprecate the Nashorn JavaScript Engine
Устарел скриптовый движок Nashorn JavaScript, API и инструменты jjs. Nashorn был представлен в JDK 8 как полная реализация ECMAScript-262 5.1. Однако по мере ускорения эволюции ECMAScript поддерживать Nashorn становится все труднее.
Deprecate the Pack200 Tools and API
Устарели инструменты pack200 и unpack200, а также API Pack200 в пакете java.util.jar.
Добро пожаловать, чтобы отсканировать код или выполнить поиск в общедоступной учетной записи «Programmer Guoguo» на WeChat и подписаться на меня, вас ждут сюрпризы~