Перейти к основному содержимому

27 записей с тегом "Java 9"

Посмотреть все теги

· 5 мин. чтения

1. Введение

Java 9 поставляется с некоторыми изменениями в классе CompletableFuture . Такие изменения были введены как часть JEP 266 для решения общих жалоб и предложений с момента его появления в JDK 8, в частности, поддержка задержек и тайм-аутов, улучшенная поддержка подклассов и несколько служебных методов.

Что касается кода, API поставляется с восемью новыми методами и пятью новыми статическими методами. Чтобы включить такие дополнения, было изменено примерно 1500 из 2400 строк кода (согласно Open JDK).

2. Дополнения API экземпляра

Как уже упоминалось, API экземпляра поставляется с восемью новыми дополнениями, а именно:

· 8 мин. чтения

1. Введение

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

Этот API был введен в Java, чтобы предоставить общий механизм для обработки всех журналов платформы и предоставить интерфейс службы, который можно настроить библиотеками и приложениями. Таким образом, журналы платформы JDK могут использовать ту же структуру ведения журналов, что и приложение, а зависимости проекта могут быть уменьшены.

2. Создание пользовательской реализации

В этом разделе мы собираемся показать основные классы Logging API, которые нам нужно реализовать для создания нового регистратора. Мы сделаем это, реализуя простой регистратор, который выводит все журналы на консоль.

· 3 мин. чтения

1. Введение

Все , кто пробовал обновиться до Java 9, вероятно, сталкивались с ошибкой NoClassDefFoundError при компиляции кода, который ранее работал в более ранних версиях Java.

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

2. Почему Java 9 не может найти JAXBException ?

Одной из наиболее обсуждаемых особенностей Java 9 является модульная система. Цель модульной системы Java 9 — разделить основные классы JVM и связанные проекты на автономные модули . Это помогает нам создавать приложения меньшего размера за счет включения только минимально необходимых классов для запуска.

· 3 мин. чтения

1. Введение

Класс java.util.Objects является частью Java, начиная с версии 1.7. Этот класс предоставляет статические служебные методы для объектов, которые можно использовать для выполнения некоторых повседневных задач, таких как проверка на равенство, проверка нулей и т. д.

В этой статье мы рассмотрим новые методы, представленные в классе java.util.Objects в Java 9.

2. Метод requireNonNullElse

Этот метод принимает два параметра и возвращает первый параметр, если он не равен null , и второй параметр в противном случае. Если оба параметра равны null , генерируется исключение NullPointerException :

· 5 мин. чтения

1. Обзор

Java постоянно развивается и добавляет новые функции в JDK. И если мы хотим использовать эти функции в наших API, это может потребовать от нижестоящих зависимостей обновить свою версию JDK.

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

Однако в этом руководстве мы узнаем о JAR-файлах с несколькими выпусками (MRJAR) и о том, как они могут одновременно содержать реализации, совместимые с разными версиями JDK.

2. Простой пример

· 5 мин. чтения

1. Обзор

Строки в Java внутренне представлены char[] , содержащим символы String . И каждый char состоит из 2 байтов, потому что Java внутри использует UTF-16.

Например, если строка содержит слово на английском языке, все первые 8 битов будут равны 0 для каждого char , поскольку символ ASCII может быть представлен одним байтом.

Для представления многих символов требуется 16 бит, но по статистике для большинства требуется всего 8 бит — представление символов LATIN-1. Таким образом, есть возможность улучшить потребление памяти и производительность.

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

В этой статье мы обсудим опцию Compressed String, представленную в JDK6, и новую компактную строку, недавно представленную в JDK9. Оба они были разработаны для оптимизации потребления памяти строками в JMV.

· 5 мин. чтения

1. Введение

Эта статья посвящена jshell , интерактивной консоли REPL (Read-Evaluate-Print-Loop), которая входит в комплект JDK для предстоящего выпуска Java 9. Для тех, кто не знаком с концепцией, REPL позволяет интерактивно запускать произвольные фрагменты кода и оценивать их результаты.

REPL может быть полезен для таких вещей, как быстрая проверка жизнеспособности идеи или определение, например, отформатированной строки для String или SimpleDateFormat .

2. Бег

Для начала нам нужно запустить REPL, что делается путем вызова: