Spec-Zone.ru › OpenJDK 24

Класс UUID

java.lang.Object
java.util.UUID
Все реализованные интерфейсы:
Serializable, Comparable<UUID>
public final class UUID extends Object implements Serializable, Comparable<UUID>
Класс, представляющий неизменяемый универсальный уникальный идентификатор (UUID). UUID представляет 128-битовое значение.

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

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

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

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

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

Для получения дополнительной информации, включая алгоритмы создания UUID, см. RFC 4122: Пространство имён URN для универсальных уникальных идентификаторов (UUID), раздел 4.2 «Алгоритмы создания UUID, основанных на времени».

С:
1.5
Внешние спецификации
  • RFC 4122: Пространство имён URN для универсальных уникальных идентификаторов (UUID)
См. также:
  • Сериализованная форма

Краткое описание конструкторов

Конструктор Описание
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 бита значения этого UUID, состоящего из 128 бит.
long getMostSignificantBits()
Возвращает наиболее значимые 64 бита значения этого UUID, состоящего из 128 бит.
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 бит

версия

public int version()
Номер версии, связанный с этим UUID. Номер версии описывает, как был сгенерирован этот UUID. Номер версии имеет следующее значение:
  • 1 UUID, основанный на времени
  • 2 UUID безопасности DCE
  • 3 UUID, основанный на имени
  • 4 Случайным образом сгенерированный UUID
Возвращает:
Номер версии этого UUID

вариант

public int variant()
Номер варианта, связанный с этим UUID. Номер варианта описывает структуру UUID. Номер варианта имеет следующее значение:
  • 0 Зарезервировано для обратной совместимости NCS
  • 2 IETF RFC 4122 (Leach-Salz), используется в этом классе
  • 6 Зарезервировано, обратная совместимость Microsoft Corporation
  • 7 Зарезервировано для будущего определения
Возвращает:
Номер варианта этого UUID
Внешние спецификации
  • RFC 4122: Универсальный уникальный идентификатор (UUID) пространство имён URN

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. Поле последовательности отсчётов времени используется для гарантии временной уникальности в UUID, основанном на времени.

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

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

узел

public long node()
Значение узла, связанное с этим UUID.

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

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

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

toString

public String toString()
Возвращает объект String, представляющий этот 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, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/UUID.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API