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

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

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

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

1. Введение

В этой статье представлен первый практический обзор Evette — нового механизма правил Java с открытым исходным кодом.

Исторически Evrete разрабатывался как облегченная альтернатива Drools Rule Engine . Он полностью соответствует спецификации Java Rule Engine и использует классический алгоритм RETE прямой цепочки с несколькими настройками и функциями для обработки больших объемов данных.

Он требует Java 8 и выше, не имеет зависимостей, без проблем работает с объектами JSON и XML и допускает функциональные интерфейсы в качестве условий и действий правил .

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

2. Зависимости Maven

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

1. Обзор

В выпуске Java SE 17 в качестве функции предварительного просмотра представлено сопоставление с образцом для выражений и операторов switch ( JEP 406 ). Сопоставление с образцом дает нам больше гибкости при определении условий для случаев переключения .

В дополнение к меткам case, которые теперь могут содержать шаблоны, выражение селектора больше не ограничивается несколькими типами. До сопоставления с образцом случаи переключения поддерживали только простую проверку выражения селектора, которое должно точно соответствовать постоянному значению.

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

2. Заявление о переключении

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

1. Обзор

В этом кратком руководстве мы узнаем, как преобразовать объект Java в массив байтов и наоборот .

2. Используйте обычную Java

Например, предположим, что у нас есть класс User :

public class User implements Serializable {
private String name;

@Override
public String toString() {
return "User{name=" + name + "}";
}

// getters and setters
}

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

1. Введение

В этом кратком руководстве мы увидим, как использовать Jackson для преобразования JSON в CSV и наоборот.

Доступны альтернативные библиотеки, такие как класс CDL из org.json , но здесь мы сосредоточимся только на библиотеке Джексона.

После того, как мы рассмотрели наш пример структуры данных, мы будем использовать комбинацию ObjectMapper и CSVMapper для преобразования между JSON и CSV.

2. Зависимости

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

1. Обзор

Исключения Java делятся на две основные категории: проверенные исключения и непроверенные исключения.

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

2. Проверенные исключения

Как правило, проверенные исключения представляют собой ошибки, не зависящие от программы. Например, конструктор FileInputStream создает исключение FileNotFoundException , если входной файл не существует.

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

1. Обзор

Одним из наиболее заметных улучшений в JDK 10 является определение типа локальных переменных с помощью инициализаторов.

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

2. Введение

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

1. Введение

В этой статье мы будем сравнивать библиотеки Java XML и API.

Это вторая статья из серии о поддержке Java для XML, если вы хотите углубиться в поддержку XPath в Java, посмотрите предыдущую статью .

2. Обзор

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

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

1. Введение

В этой статье мы описываем, как в Java может быть реализована связь «один ко всем» (широковещательная) и «один ко многим» (многоадресная). Концепции широковещательной и многоадресной рассылки, изложенные в этой статье, основаны на протоколе UDP.

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

Наконец, в заключение мы обсудим поддержку этих двух методов адресации как в IPv4, так и в IPv6 .

2. Резюме дейтаграммы

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

1. Введение

Ratpack — это фреймворк, созданный поверх движка Netty , который позволяет нам быстро создавать HTTP-приложения. Мы уже рассмотрели его основное использование в предыдущих статьях . На этот раз мы покажем, как использовать его потоковый API для реализации реактивных приложений .

2. Краткий обзор реактивных потоков

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

  • Отзывчивый
  • Устойчивый
  • Эластичный
  • Сообщение

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

1. Обзор

Проще говоря, ByteBuddy — это библиотека для динамического создания классов Java во время выполнения.

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

2. Зависимости

Давайте сначала добавим зависимость в наш проект. Для проектов на основе Maven нам нужно добавить эту зависимость в наш pom.xml :