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

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

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

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

1. Введение

В этом руководстве мы узнаем, как сгенерировать случайную строку в Java, сначала используя стандартные библиотеки Java, затем вариант Java 8 и, наконец, используя библиотеку Apache Commons Lang .

Эта статья является частью серии «Java — Back to Basic» здесь, на ForEach.

2. Сгенерируйте случайную неограниченную строку с помощью простой Java

Давайте начнем с простого и сгенерируем случайную строку , ограниченную 7 символами:

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

1. Обзор

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

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

2. Случайная дата и время

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

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

1. Обзор

Генерация случайных значений — очень распространенная задача. Вот почему Java предоставляет класс java.util.Random .

Однако этот класс плохо работает в многопоточной среде.

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

Чтобы обойти это ограничение, Java представила класс java.util.concurrent.ThreadLocalRandom в JDK 7 — для генерации случайных чисел в многопоточной среде .

Давайте посмотрим, как работает ThreadLocalRandom и как его использовать в реальных приложениях.

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

1. Введение

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

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

2. Использование Passay

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

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

1. Введение

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

2. Сравнение с java.util.Random

Стандартные реализации JDK для java.util.Random используют алгоритм Linear Congruential Generator (LCG) для предоставления случайных чисел. Проблема этого алгоритма в том, что он не является криптографически стойким. Другими словами, сгенерированные значения гораздо более предсказуемы, поэтому злоумышленники могут использовать их для компрометации нашей системы.

Чтобы преодолеть эту проблему, мы должны использовать java.security.SecureRandom в любых решениях по безопасности . Он создает криптографически стойкие случайные значения с помощью криптографически стойкого генератора псевдослучайных чисел ( CSPRNG ).

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

1. Обзор

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

2. EasyRandom

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

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

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

1. Введение

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

2. Выбор случайного предмета/предметов

Чтобы получить случайный элемент из экземпляра List , вам нужно сгенерировать случайный номер индекса, а затем получить элемент по этому сгенерированному номеру индекса с помощью метода List.get() .

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

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

В этом кратком руководстве показано, как сгенерировать long first, используя простую Java и математическую библиотеку Apache Commons.

Эта статья является частью серии «Java — Back to Basic» здесь, на ForEach.

1. Создайте неограниченное длинное

Начнем с создания Long:

@Test
public void givenUsingPlainJava_whenGeneratingRandomLongUnbounded_thenCorrect() {
long generatedLong = new Random().nextLong();
}

2. Сгенерируйте длинное значение в диапазоне