Рубрики
Без рубрики

Генератор UUID Java – Java GUID

Java UUID, РУКОВОДСТВО по Java, Генератор UUID Java, Java генерирует guid, java-uuid-генератор maven, генератор guid, пример java uuid, randomUUID, compareTo, равно.

Автор оригинала: 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:

  1. 0 – Зарезервировано для обратной совместимости NCS
  2. 2 – Лич-Зальц
  3. 6 – Зарезервировано, обратная совместимость с корпорацией Майкрософт
  4. 7 – Зарезервировано для будущего определения

Версии UUID:

  1. на основе времени(версия 1)
  2. Безопасность DCE(версия 2)
  3. на основе имен(версия 3)
  4. случайно сгенерированный 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 с примером программы.

  1. randomUUID() : Это статический заводской метод для извлечения случайного UUID типа 4.
  2. Выходные данные вышеупомянутой программы приведены ниже:

  3. fromString(имя строки) : Этот метод создает UUID из указанной строки . Это полезно, когда вам нужно преобразовать строку в объект UUID.
  4. тактовая последовательность() : Этот метод возвращает тактовую последовательность, связанную с UUID, и для извлечения тактовой последовательности нам необходимо создать UUID на основе времени (версия 1), иначе он выдаст Исключение UnsupportedOperationException .
  5. Выходные данные вышеупомянутой программы приведены ниже:

  6. getLeastSignificantBits() : Этот метод возвращает наименее значимые 64 бита UUID.
  7. getMostSignificantBits() : Этот метод возвращает наиболее значимые 64 бита UUID.
  8. Вывод приведенного выше примера программы java UUID является:

  9. nameUUIDFromBytes(имя байта []) : Это статический заводской метод, используемый для извлечения UUID на основе имени (версия 3) с использованием указанного массива байтов .
  10. Результатом работы вышеуказанной программы является:

  11. node() : Этот метод возвращает длинное значение узла из UUID, и для извлечения значения узла нам нужно создать UUID на основе времени (версия 1), иначе он выдаст Исключение UnsupportedOperationException .
  12. метка времени() : Этот метод возвращает значение метки времени UUID UUID, и для получения значения метки времени нам необходимо создать UUID на основе времени(версия 1), иначе он вызовет исключение UnsupportedOperationException.
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.

  1. compareTo(UUID val) : Класс UUID реализует Сопоставимый | интерфейс . Этот метод сравнивает UUID с указанным значением UUID и возвращает целое значение, которое может быть -1, 0 или 1. -1: Этот UUID меньше указанного значения UUID
    • 0: Этот UUID равен указанному значению UUID
    • 1: Этот UUID больше указанного значения UUID
    • Давайте взглянем на приведенный ниже пример программы.

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

    равно(объект obj)

  2. : Этот метод сравнивает UUID с указанным объектом и возвращает значение true, если указанный объект не равен нулю и имеет тип UUID, имеет тот же вариант и содержит то же значение.
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. Это отличный служебный класс, и вы можете использовать его для создания уникальных идентификаторов.

Ссылка: API Doc , RFC 4122