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

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

1. Введение

Аннотации существуют со времен Java 5, и в настоящее время они представляют собой повсеместно распространенные программные конструкции, позволяющие обогащать код.

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

2. Вопросы

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

1. Обзор

BouncyCastle — это библиотека Java, которая дополняет стандартное криптографическое расширение Java (JCE).

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

2. Конфигурация Maven

Прежде чем мы начнем работать с библиотекой, нам нужно добавить необходимые зависимости в наш файл pom.xml :

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

1. Обзор

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

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

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

2. Класс шифрования

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

1. Обзор

В этом руководстве мы обсудим, как использовать вектор инициализации (IV) с алгоритмами шифрования. Мы также обсудим лучшие практики при использовании IV.

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

Мы будем использовать алгоритм AES в разных режимах для всех наших примеров.

2. Алгоритмы шифрования

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

1. Обзор

В этом руководстве мы рассмотрим java.util.concurrent.Exchanger<T>. Это работает как общая точка для двух потоков в Java для обмена объектами между ними.

2. Введение в обменник

Класс Exchanger в Java можно использовать для совместного использования объектов между двумя потоками типа T. Класс предоставляет только один перегруженный метод exchange(T t) .

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

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

1. Обзор

В этом кратком руководстве мы обсудим java.lang.IllegalAccessError .

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

2. Введение в IllegalAccessError

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

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

1. Обзор

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

2. Создать из массива

Мы можем создать список из массива. А благодаря литералам массивов мы можем инициализировать их одной строкой:

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

1. Обзор

В этом кратком руководстве мы обсудим включение блокировки транзакций в Spring Data JPA для пользовательских методов запросов и предопределенных методов CRUD репозитория.

Мы также рассмотрим различные типы блокировки и настройку времени ожидания блокировки транзакции.

2. Типы блокировки

В JPA определены два основных типа блокировки: пессимистическая блокировка и оптимистичная блокировка.

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

1. Введение

В этой статье мы собираемся изучить важный API, представленный в Java 7 и улучшенный в следующих версиях, java.lang.invoke.MethodHandles . ``

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

2. Что такое дескрипторы методов?

Что касается его определения, как указано в документации API:

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

1. Обзор

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

2. Защищенное ключевое слово

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

Используя защищенное ключевое слово, мы принимаем решения о том, какие методы и поля следует считать внутренними элементами пакета или иерархии классов, а какие доступны для внешнего кода.