Spec-Zone.ru › OpenJDK 25

Класс 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

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

Поле версии содержит значение, описывающее тип этого UUID. Существует четыре основных типа UUID: основанные на времени, для безопасности DCE, основанные на имени и случайно сгенерированные UUID. Значения версий этих типов равны соответственно 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 бита 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.

Методы, объявленные в классе 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 бита 128-битового значения этого UUID.
Возвращает:
Младшие 64 бита 128-битового значения этого UUID

getMostSignificantBits

public long getMostSignificantBits()
Возвращает старшие 64 бита 128-битового значения этого UUID.
Возвращает:
Старшие 64 бита 128-битового значения этого UUID

version

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

variant

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

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

Возвращает:
Последовательность тактов этого UUID
Выбрасывает:
UnsupportedOperationException — если этот UUID не является UUID версии 1

node

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

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

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

Возвращает:
Значение узла этого UUID
Выбрасывает:
UnsupportedOperationException — если этот UUID не является UUID версии 1

toString

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

Строковое представление UUID описывается следующей грамматикой БНФ:


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(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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/UUID.html

Spec-Zone.ru

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