JavaUtil(java.util)

Проработать

  1. Регулярные выражения: начало работы с RegExp
  2. Java RegEx: использование регулярных выражений на практике

Основные разделы

Random

Класс для создания псевдослучайных значений.

Методы для генерации

UUID

UUID - универсальный уникальный идентификатор. Имеют почти ничтожную вероятность быть идентичными.

Есть несколько версий, по-разному генерирующий id.

  1. Версия 1 – по времени – Объединяет метку времени, последовательность часов и значение, специфичное для генерирующего устройства (обычно MAC-адрес), для создания вывода, уникального для этого хоста в данный момент.
  2. Версия 2 – Безопасность DCE – Эта версия была разработана как развитие версии 1 для использования с распределенной вычислительной средой (DCE). Широко не используется.
  3. Версия 3 – на основе имени (MD5) – MD5 хэширует «пространство имен» и «имя», чтобы создать значение, уникальное для этого имени в пространстве имен. Создание другого UUID с тем же пространством имен и именем приведет к идентичным результатам, поэтому этот метод дает воспроизводимые результаты.
  4. Версия 4 – Случайная – Большинство современных систем, как правило, выбирают UUID v4, так как он использует источник случайных или псевдослучайных чисел хоста для вывода значений. Вероятность создания одного и того же UUID дважды практически незначительна.
  5. Версия 5 — на основе имени (SHA-1) – Это похоже на версию 3, но использует более надежный алгоритм SHA-1 для хеширования пространства имен и введенного имени.
  6. Чаще используется версия 4, из-за его случайного характера.

    Варианты применения

    • Когда id нужно получить до работы с БД.
    • Работа с id в распределенной системе. Создание id из массива byte или случайная генерация.
    • Если нужно скрыть количество записей в таблице. Целочисленные имеют порядковый номер.

    Жертвуем

    • Автоинкремент.
    • Порядком.
    • Сортировкой.
    • Быстрой индексацией.

Варианты создания через UUID класс.

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)));
        

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