Автор оригинала: Pankaj Kumar.
UUID Java
Класс Java UUID (Универсальный уникальный идентификатор) является частью java.util пакета. Класс Java UUID представляет собой неизменяемый универсальный уникальный идентификатор и представляет 128-разрядное значение. Он также известен как GUID (Глобально уникальный идентификатор).
Использование UUID Java
UUID Java используется для создания следующих:
- Случайное Имя Файла
- Идентификатор сеанса для веб-приложения Java
- Первичный ключ для таблицы базы данных
- Идентификатор Транзакции
Конструктор UUID Java
public UUID(long mostSigBits, long leastSigBits)
Создает новый UUID, используя указанные данные.
Версия и варианты UUID
Существуют различные варианты UUID, но в основном мы увидим вариант 2 (Лич-Зальц) в наших примерах.
Варианты UUID:
- 0 – Зарезервировано для обратной совместимости NCS
- 2 – Лич-Зальц
- 6 – Зарезервировано, обратная совместимость с корпорацией Майкрософт
- 7 – Зарезервировано для будущего определения
Версии UUID:
- на основе времени(версия 1)
- Безопасность DCE(версия 2)
- на основе имен(версия 3)
- случайно сгенерированный UUID(версия 4)
Генератор UUID Java
Мы можем использовать java-uuid-генератор зависимость maven для генерации UUID. Вы можете включить это, используя приведенную ниже зависимость maven.
com.fasterxml.uuid java-uuid-generator 3.1.4
Давайте взглянем на приведенный ниже пример программы генератора uuid java.
package com.journaldev.examples;
import java.util.UUID;
import com.fasterxml.uuid.Generators;
/**
* Java UUID Generator
*
*/
public class UUIDVersionExample {
public static void main(String[] args) {
//Generate time-based UUID
UUID uuid1 = Generators.timeBasedGenerator().generate();
System.out.println("UUID : "+uuid1);
System.out.println("UUID Version : "+uuid1.version());
System.out.println("UUID Variant : "+uuid1.variant());
//Generate random UUID
UUID uuid2 = Generators.randomBasedGenerator().generate();
System.out.println("UUID : "+uuid2);
System.out.println("UUID Version : "+uuid2.version());
System.out.println("UUID Variant : "+uuid2.variant());
}
}
Выходные данные вышеупомянутой программы генератора uuid приведены ниже:
UUID : 5fc03087-d265-11e7-b8c6-83e29cd24f4c UUID Version : 1 UUID Variant : 2 UUID : e8e3db08-dc39-48ea-a3db-08dc3958eafb UUID Version : 4 UUID Variant : 2
Методы UUID Java
Давайте рассмотрим приведенные ниже методы UUID с примером программы.
randomUUID(): Это статический заводской метод для извлечения случайного UUID типа 4.fromString(имя строки): Этот метод создает UUID из указанной строки . Это полезно, когда вам нужно преобразовать строку в объект UUID.тактовая последовательность(): Этот метод возвращает тактовую последовательность, связанную с UUID, и для извлечения тактовой последовательности нам необходимо создать UUID на основе времени (версия 1), иначе он выдастИсключение UnsupportedOperationException.getLeastSignificantBits(): Этот метод возвращает наименее значимые 64 бита UUID.getMostSignificantBits(): Этот метод возвращает наиболее значимые 64 бита UUID.nameUUIDFromBytes(имя байта []): Это статический заводской метод, используемый для извлечения UUID на основе имени (версия 3) с использованием указанного массива байтов .node(): Этот метод возвращает длинное значение узла из UUID, и для извлечения значения узла нам нужно создать UUID на основе времени (версия 1), иначе он выдастИсключение UnsupportedOperationException.метка времени(): Этот метод возвращает значение метки времени UUID UUID, и для получения значения метки времени нам необходимо создать UUID на основе времени(версия 1), иначе он вызовет исключение UnsupportedOperationException.
Выходные данные вышеупомянутой программы приведены ниже:
Выходные данные вышеупомянутой программы приведены ниже:
Вывод приведенного выше примера программы java UUID является:
Результатом работы вышеуказанной программы является:
package com.journaldev.examples;
import java.util.UUID;
import com.fasterxml.uuid.Generators;
/**
* Java UUID timestamp Example Program
*
*/
public class UUIDTimestampExample {
public static void main(String[] args) {
// Generate time-based uuid
UUID uuid = Generators.timeBasedGenerator().generate();
System.out.println("UUID : " + uuid);
System.out.println("UUID Version : " + uuid.version());
System.out.println("UUID Timestamp : " + uuid.timestamp());
}
}
Результатом работы вышеуказанной программы является:
UUID : 61614667-d279-11e7-a5ac-f941ac8dfc39 UUID Version : 1 UUID Timestamp : 137309732424730215
Создайте UUID С помощью Конструктора
Давайте рассмотрим приведенный ниже пример программы для создания UUID с помощью ее конструктора.
package com.journaldev.examples;
import java.util.UUID;
/**
* Java UUID Using Constructor Example Program
*
*/
public class UUIDUsingConstructor {
public static void main(String[] args) {
long msb = System.currentTimeMillis();
long lsb = System.currentTimeMillis();
//initialize uuid
UUID uuid = new UUID(msb, lsb);
System.out.println("UUID : "+uuid);
}
}
Сравните два UUID
Класс UUID Java предоставляет два метода для сравнения UUID.
compareTo(UUID val): Класс UUID реализует Сопоставимый | интерфейс . Этот метод сравнивает UUID с указанным значением UUID и возвращает целое значение, которое может быть -1, 0 или 1. -1: Этот UUID меньше указанного значения UUID- 0: Этот UUID равен указанному значению UUID
- 1: Этот UUID больше указанного значения UUID
- Давайте взглянем на приведенный ниже пример программы.
: Этот метод сравнивает UUID с указанным объектом и возвращает значение true, если указанный объект не равен нулю и имеет тип UUID, имеет тот же вариант и содержит то же значение.
Результат будет зависеть от случайно сгенерированных значений UUID, мы не можем это предсказать.
равно(объект obj)
package com.journaldev.examples;
import java.util.UUID;
/**
* Java UUID equals Example Program
*
*/
public class UUIDEqualsExample {
public static void main(String[] args) {
// initialize uuids
UUID uuid1 = UUID.randomUUID();
UUID uuid2 = UUID.randomUUID();
System.out.println(uuid1.equals(uuid2));
}
}
Это все для класса Java UUID. Это отличный служебный класс, и вы можете использовать его для создания уникальных идентификаторов.