JavaUtil(java.util)
Основные разделы
Random
Класс для создания псевдослучайных значений.
Методы для генерации
- nextInt
- nextLong
- nextBoolean
- nextDouble
UUID
UUID - универсальный уникальный идентификатор. Имеют почти ничтожную вероятность быть идентичными.
Есть несколько версий, по-разному генерирующий id.
- Версия 1 – по времени – Объединяет метку времени, последовательность часов и значение, специфичное
для генерирующего устройства (обычно MAC-адрес), для создания вывода, уникального для этого хоста
в данный момент.
- Версия 2 – Безопасность DCE – Эта версия была разработана как развитие версии 1 для использования
с распределенной вычислительной средой (DCE). Широко не используется.
- Версия 3 – на основе имени (MD5) – MD5 хэширует «пространство имен» и «имя», чтобы создать значение,
уникальное для этого имени в пространстве имен. Создание другого UUID с тем же пространством имен
и именем приведет к идентичным результатам, поэтому этот метод дает воспроизводимые результаты.
- Версия 4 – Случайная – Большинство современных систем, как правило, выбирают UUID v4, так как он
использует источник случайных или псевдослучайных чисел хоста для вывода значений. Вероятность
создания одного и того же UUID дважды практически незначительна.
- Версия 5 — на основе имени (SHA-1) – Это похоже на версию 3, но использует более надежный алгоритм
SHA-1 для хеширования пространства имен и введенного имени.
Чаще используется версия 4, из-за его случайного характера.
Варианты применения
- Когда id нужно получить до работы с БД.
- Работа с id в распределенной системе. Создание id из массива byte или случайная генерация.
- Если нужно скрыть количество записей в таблице. Целочисленные имеют порядковый номер.
Жертвуем
- Автоинкремент.
- Порядком.
- Сортировкой.
- Быстрой индексацией.
Варианты создания через UUID класс.
- Version 3 - UUID.nameUUIDFromBytes("test".getBytes());
- Version 4 - UUID.randomUUID();
Scanner
Пример:
import java.util.Scanner;
Scanner sc = new Scanner(System.in); //создание объекта сканер
//создаем переменную необходимого типа
int i;
i = sc.nextInt(); // если нужно целое число
i = sc.nextLine(); //если строка
i = sc.nextDouble(); //если дробное
Base64
Возможность шифровать и дешифровать строки
var s = Base64.getEncoder().encodeToString("artem".getBytes(StandardCharsets.UTF_8));
System.out.println(s);
System.out.println(new String(Base64.getDecoder().decode(s)));
Возможность шифровать и картинку в текст, который можно хранить в базе или облаке.