Класс UUID

Все реализованные интерфейсы:
Serializable, Comparable<UUID>
public final class UUID
extends Object
implements Serializable, Comparable<UUID>

Класс, представляющий неизменяемый универсальный уникальный идентификатор (UUID). UUID представляет собой 128-битовое значение.

Существуют различные варианты этих глобальных идентификаторов. Методы этого класса предназначены для работы с вариантом Leach-Salz, хотя конструкторы позволяют создавать любой вариант UUID (описанный ниже).

Структура UUID варианта 2 (Leach-Salz): старшее целое число состоит из следующих беззнаковых полей:

0xFFFFFFFF00000000 time_low
 0x00000000FFFF0000 time_mid
 0x000000000000F000 version
 0x0000000000000FFF time_hi
Младшее целое число состоит из следующих беззнаковых полей:
0xC000000000000000 variant
 0x3FFF000000000000 clock_seq
 0x0000FFFFFFFFFFFF node

Поле варианта содержит значение, которое идентифицирует структуру UUID. Описание разбиения на биты, приведенное выше, справедливо только для UUID с вариантом 2, что указывает на вариант Leach-Salz.

Поле версии содержит значение, описывающее тип этого UUID. Существуют четыре основных типа UUID: временные, безопасности DCE, основанные на имени и генерируемые случайным образом. Эти типы имеют значения версии 1, 2, 3 и 4 соответственно.

Для получения дополнительной информации, включая алгоритмы создания UUIDs, см. RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace, раздел 4.2 "Алгоритмы создания временного UUID".

С:
1.5
См. также:
Сериализованная форма

Конструкторы

Конструктор Описание
UUID​(long mostSigBits, long leastSigBits)

Создаёт новый UUID с использованием указанных данных.

Методы

Модификатор и тип Метод Описание
int clockSequence()

Значение последовательности часов, связанное с этим UUID.

int compareTo​(UUID val)

Сравнивает этот UUID с указанным UUID.

boolean equals​(Object obj)

Сравнивает этот объект с указанным объектом.

static UUID fromString​(String name)

Создаёт UUID из строкового стандартного представления, как описано в методе toString().

long getLeastSignificantBits()

Возвращает младшие 64 бита значения 128-битового UUID.

long getMostSignificantBits()

Возвращает старшие 64 бита значения 128-битового UUID.

int hashCode()

Возвращает хэш-код для этого UUID.

static UUID nameUUIDFromBytes​(byte[] name)

Статический фабричный метод для получения UUID типа 3 (основанного на имени) на основе указанного массива байтов.

long node()

Значение узла, связанное с этим UUID.

static UUID randomUUID()

Статический фабричный метод для получения UUID типа 4 (генерируемого псевдослучайным образом).

long timestamp()

Значение отметки времени, связанное с этим UUID.

String toString()

Возвращает объект типа String, представляющий этот UUID.

int variant()

Номер варианта, связанный с этим UUID.

int version()

Номер версии, связанный с этим UUID.

Методы, объявленные в классе java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Конструкторы

UUID

public UUID(long mostSigBits,
            long leastSigBits)

Создаёт новый UUID с указанными данными. mostSigBits используется для наиболее значимых 64 бит UUID, а leastSigBits становится наименее значимыми 64 битами UUID.

Параметры:
mostSigBits - Наиболее значимые биты UUID
leastSigBits - Наименее значимые биты UUID

Методы

randomUUID

public static UUID randomUUID()

Статический фабричный метод для получения UUID типа 4 (генерируемого псевдослучайным образом). UUID генерируется с использованием криптографически стойкого генератора псевдослучайных чисел.

Возвращает:
Случайно сгенерированный UUID

nameUUIDFromBytes

public static UUID nameUUIDFromBytes(byte[] name)

Статический фабричный метод для получения UUID типа 3 (на основе имени) на основе указанного массива байтов.

Параметры:
name - Массив байтов, используемый для создания UUID
Возвращает:
UUID сгенерированный из указанного массива

fromString

public static UUID fromString(String name)

Создаёт UUID из строкового представления, как описано в методе toString().

Параметры:
name - Строка, определяющая UUID
Возвращает:
UUID с заданным значением
Исключения:
IllegalArgumentException - Если имя не соответствует строковому представлению, как описано в toString()

getLeastSignificantBits

public long getLeastSignificantBits()

Возвращает наименее значимые 64 бита значения UUID длиной 128 бит.

Возвращает:
Наименее значимые 64 бита значения UUID длиной 128 бит

getMostSignificantBits

public long getMostSignificantBits()

Возвращает наиболее значимые 64 бита значения UUID длиной 128 бит.

Возвращает:
Наиболее значимые 64 бита значения UUID длиной 128 бит

version

public int version()

Номер версии, связанный с этим UUID. Номер версии описывает, как был сгенерирован этот UUID. Значение номера версии:

  • 1 Время-базированный UUID
  • 2 DCE security UUID
  • 3 UUID, основанный на имени
  • 4 Случайно сгенерированный UUID

Возвращает:
Номер версии этого UUID

variant

public int variant()

Номер варианта, связанный с этим UUID. Номер варианта описывает расположение UUID. Значение номера варианта:

  • 0 Зарезервировано для обратной совместимости NCS
  • 2 IETF RFC 4122 (Leach-Salz), используется этим классом
  • 6 Зарезервировано, обратная совместимость Microsoft Corporation
  • 7 Зарезервировано для будущего определения

Возвращает:
Номер варианта этого UUID

timestamp

public long timestamp()

Значение отметки времени, связанное с этим UUID.

Значение отметки времени (60 бит) формируется из полей time_low, time_mid и time_hi этого UUID. Результирующая отметка времени измеряется в 100 наносекундных единицах с полуночи 15 октября 1582 года по UTC.

Значение отметки времени имеет смысл только в UUID на основе времени, который имеет тип версии 1. Если этот UUID не является UUID на основе времени, то этот метод выбросит исключение UnsupportedOperationException.

Возвращает:
Отметка времени этого UUID.
Исключения:
UnsupportedOperationException - Если этот UUID не UUID версии 1

clockSequence

public int clockSequence()

Значение последовательности часов, связанное с этим UUID.

Значение последовательности часов (14 бит) формируется из поля clock sequence этого UUID. Поле clock sequence используется для обеспечения временной уникальности в UUID на основе времени.

Значение последовательности часов имеет смысл только в UUID на основе времени, который имеет тип версии 1. Если этот UUID не является UUID на основе времени, то этот метод выбросит исключение UnsupportedOperationException.

Возвращает:
Последовательность часов этого UUID
Исключения:
UnsupportedOperationException - Если этот UUID не UUID версии 1

node

public long node()

Значение узла, связанное с этим UUID.

Значение узла (48 бит) формируется из поля node этого UUID. Это поле предназначено для хранения адреса IEEE 802 машины, которая сгенерировала этот UUID для обеспечения пространственной уникальности.

Значение узла имеет смысл только в UUID на основе времени, который имеет тип версии 1. Если этот UUID не является UUID на основе времени, то этот метод выбросит исключение UnsupportedOperationException.

Возвращает:
Значение узла этого UUID
Исключения:
UnsupportedOperationException - Если этот UUID не UUID версии 1

toString

public String toString()

Возвращает строковое представление этого UUID.

Строковое представление UUID описывается следующей BNF:

UUID                   = <time_low> "-" <time_mid> "-"
                         <time_high_and_version> "-"
                         <variant_and_sequence> "-"
                         <node>
time_low               = 4*<hexOctet>
time_mid               = 2*<hexOctet>
time_high_and_version  = 2*<hexOctet>
variant_and_sequence   = 2*<hexOctet>
node                   = 6*<hexOctet>
hexOctet               = <hexDigit><hexDigit>
hexDigit               =
      "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
      | "a" | "b" | "c" | "d" | "e" | "f"
      | "A" | "B" | "C" | "D" | "E" | "F"
Переопределяет:
toString в классе Object
Возвращает:
Строковое представление этого UUID

hashCode

public int hashCode()

Возвращает код хэша для этого UUID.

Переопределяет:
hashCode в классе Object
Возвращает:
Значение кода хэша для этого UUID
См. также:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

equals

public boolean equals(Object obj)

Сравнивает этот объект со заданным объектом. Результат true тогда и только тогда, когда аргумент не null, является объектом UUID и содержит то же значение, бит за битом, что и этот UUID.

Переопределяет:
equals в классе Object
Параметры:
obj - Объект для сравнения
Возвращает:
true если объекты совпадают; false в противном случае
См. также:
Object.hashCode(), HashMap

compareTo

public int compareTo(UUID val)

Сравнивает этот UUID с указанным UUID.

Первый из двух UUID больше второго, если самый значимый бит, в котором UUID отличаются, больше для первого UUID.

Определено в:
compareTo в интерфейсе Comparable<UUID>
Параметры:
val - UUID с которым сравнивается этот UUID
Возвращает:
-1, 0 или 1, если этот UUID меньше, равен или больше val

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/UUID.html

Spec-Zone .ru
спецификации, руководства, описания, API