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

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

1. Обзор

Система типов Java состоит из двух видов типов: примитивов и ссылок.

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

2. Примитив против эталона

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

1. Обзор

В этом уроке мы обсудим принципы объектно-ориентированного проектирования SOLID.

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

2. Причина для принципов SOLID

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

1. Обзор

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

2. Атрибуты @AttributeOverride

Аннотация содержит два обязательных атрибута:

  • name – имя поля включенной сущности
  • столбец - определение столбца, которое переопределяет определение, определенное в исходном объекте.

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

1. Введение

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

2. Жизненный цикл сущности и генерация идентификатора

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

JPA определяет четыре стратегии генерации идентификаторов. Мы можем сгруппировать эти четыре стратегии в две категории:

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

1. Введение

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

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

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

Нам нужно включить зависимость hibernate-core в файл pom.xml :

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

1. Обзор

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

2. Отдавайте предпочтение стандартным функциональным интерфейсам

Функциональные интерфейсы, собранные в пакете java.util.function , удовлетворяют потребности большинства разработчиков в предоставлении целевых типов для лямбда-выражений и ссылок на методы. Каждый из этих интерфейсов является общим и абстрактным, что позволяет легко адаптировать их практически к любому лямбда-выражению. Разработчики должны изучить этот пакет перед созданием новых функциональных интерфейсов.

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

1. Обзор

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

Для дальнейшего чтения мы должны знать , что существует очень популярная аббревиатура (вероятно, более популярная, чем фактическое название) для интернационализации — i18n из-за 18 букв между «i» и «n».

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

Например, давайте сосредоточимся на цифрах для конкретной страны. Они имеют различные десятичные разделители и разделители тысяч:

  • 102 300,45 (США)
  • 102 300,45 (Польша)
  • 102.300,45 (Германия)

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

1. Введение

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

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

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

2. Новые методы *exact()

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

1. Обзор

В этой статье мы кратко рассмотрим одну из основных новых функций, добавленных в Java 8, — потоки.

Мы объясним, что такое потоки, и продемонстрируем создание и основные операции с потоками на простых примерах.

2. Потоковое API

Одной из основных новых функций Java 8 является введение потоковой функциональности — java.util.stream — которая содержит классы для обработки последовательностей элементов.

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

1. Введение

В этом кратком руководстве мы увидим, как найти максимальное и минимальное значения в массиве с помощью Stream API Java 8.

Мы начнем с поиска минимума в массиве целых чисел, а затем найдем максимум в массиве объектов.

2. Обзор

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