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

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

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

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

1. Обзор

Java 16 , выпущенный 16 марта 2021 года, является последним краткосрочным добавочным выпуском, основанным на Java 15 . В этом выпуске есть несколько интересных функций, таких как записи и запечатанные классы.

В этой статье мы рассмотрим некоторые из этих новых функций.

2. Вызов методов по умолчанию из экземпляров прокси (JDK-8159746)

В качестве улучшения метода по умолчанию в интерфейсах с выпуском Java 16 была добавлена поддержка java.lang.reflect.InvocationHandler для вызова методов интерфейса по умолчанию через динамический прокси с использованием отражения.

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

1. Обзор

Раньше платформа Java имела монолитную архитектуру, объединяющую все пакеты в единое целое.

В Java 9 это было упрощено с введением системы Java Platform Module System (JPMS) или модулей для краткости. Связанные пакеты были сгруппированы в модули, а модули заменили пакеты и стали основной единицей повторного использования .

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

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

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

1. Обзор

В этом руководстве мы рассмотрим различные подходы к преобразованию массива байтов в числовое значение ( int , long , float , double ) и наоборот.

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

Поскольку типы short и char состоят всего из двух байтов, они не требуют особого внимания. Итак, мы сосредоточимся на преобразовании между байтовым массивом и типами int , long , float и double .

2. Использование операторов сдвига

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

1. Обзор

В этом руководстве мы узнаем о четырех способах получения имени класса из методов API класса : getSimpleName() , getName() , getTypeName() и getCanonicalName() . ``

Эти методы могут сбивать с толку из-за похожих названий и несколько расплывчатой Javadocs. У них также есть некоторые нюансы, когда речь идет о примитивных типах, объектных типах, внутренних или анонимных классах и массивах.

2. Получение простого имени

Начнем с метода getSimpleName() .

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

1. Обзор

Путь к классам — важная концепция в мире Java. Когда мы компилируем или запускаем приложение Java, JVM находит и загружает классы в пути к классам.

Мы можем определить элементы в пути к классам либо с помощью параметра -cp команд java/ j avac , либо с помощью переменной среды CLASSPATH . Независимо от того, какой подход мы используем для установки пути к классам, нам нужно следовать синтаксису пути к классам.

В этом кратком руководстве мы обсудим синтаксис пути к классам и, в частности, разделитель пути к классам в операционных системах Windows и Linux.

2. Разделитель путей к классам

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

1. Обзор

Java предоставляет множество методов и классов для объединения String s . Однако результирующая строка может содержать некоторые нежелательные значения, если мы не будем обращать внимание на нулевые объекты.

В этом руководстве мы рассмотрим некоторые подходы, позволяющие избежать нулевых объектов String при объединении String s.

2. Постановка задачи

Допустим, мы хотим объединить элементы массива String , где любой из элементов может быть нулевым .

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

1. Обзор

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

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

2. Вариант использования

Давайте разработаем алгоритм, способный подсчитывать, сколько раз в строке появляется действительный адрес электронной почты .

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

1. Обзор

В этом кратком руководстве мы рассмотрим устаревшие API в Java и как использовать аннотацию @Deprecated .

2. Аннотация @Deprecated

По мере развития проекта его API меняется. Со временем появляются определенные конструкторы, поля, типы или методы, которые мы больше не хотим, чтобы люди использовали.

Вместо того, чтобы нарушать обратную совместимость API проекта, мы можем пометить эти элементы аннотацией @Deprecated .

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

1. Обзор

В этом уроке мы узнаем, как получить аннотации поля. Кроме того, мы объясним, как работает мета-аннотация удержания. После этого мы покажем разницу между двумя методами, которые возвращают аннотации поля.

2. Политика хранения аннотации

Во-первых, давайте посмотрим на аннотацию Retention . Он определяет жизненный цикл аннотации. Эта мета-аннотация принимает атрибут RetentionPolicy . То есть атрибут определяет жизненный цикл , в котором аннотация видна:

  • RetentionPolicy.SOURCE — виден только в исходном коде
  • RetentionPolicy.CLASS — виден компилятору во время компиляции.
  • RetentionPolicy.RUNTIME — виден компилятору и среде выполнения.

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

1. Обзор

В этом кратком руководстве мы рассмотрим различные способы перечисления файлов в каталоге .

2. Листинг

Если мы хотим вывести список всех файлов в каталоге и пропустить дальнейшее изучение подкаталогов, мы можем просто использовать java.io.File#listFiles :

public Set<String> listFilesUsingJavaIO(String dir) {
return Stream.of(new File(dir).listFiles())
.filter(file -> !file.isDirectory())
.map(File::getName)
.collect(Collectors.toSet());
}