Класс UUID
- Все реализуемые интерфейсы:
Serializable, Comparable<UUID>
public final class UUID extends Object implements Serializable, Comparable<UUID>
Существуют различные варианты этих глобальных идентификаторов. Методы этого класса предназначены для работы с вариантом 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
- Внешние спецификации
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
UUID |
Создаёт новый UUID с использованием указанных данных. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
clockSequence() |
Значение последовательности тактов, связанное с этим UUID. |
int |
compareTo |
Сравнивает этот UUID с указанным UUID. |
boolean |
equals |
Сравнивает этот объект с указанным объектом. |
static UUID |
fromString |
Создаёт UUID из стандартного строкового представления, описанного в методе toString(). |
long |
getLeastSignificantBits() |
Возвращает младшие 64 бита 128-битового значения этого UUID. |
long |
getMostSignificantBits() |
Возвращает старшие 64 бита 128-битового значения этого UUID. |
int |
hashCode() |
Возвращает хеш-код этого UUID. |
static UUID |
nameUUIDFromBytes |
Статическая фабрика для получения UUID типа 3 (основанного на имени) на основе указанного массива байтов. |
long |
node() |
Значение узла, связанное с этим UUID. |
static UUID |
randomUUID() |
Статическая фабрика для получения UUID типа 4 (псевдослучайно сгенерированного). |
long |
timestamp() |
Значение временной метки, связанное с этим UUID. |
String |
toString() |
Возвращает объект String, представляющий этот UUID. |
int |
variant() |
Номер варианта, связанный с этим UUID. |
int |
version() |
Номер версии, связанный с этим UUID. |
Подробное описание конструкторов
UUID
public UUID(long mostSigBits, long leastSigBits)
UUID с использованием указанных данных.
mostSigBits используется для старших 64 бит
UUID, а leastSigBits становится младшими 64 битами UUID.- Параметры:
-
mostSigBits— старшие битыUUID -
leastSigBits— младшие битыUUID
Подробное описание методов
randomUUID
public static UUID randomUUID()
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
getMostSignificantBits
public long getMostSignificantBits()
- Возвращает:
- Старшие 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 - Внешние спецификации
timestamp
public long timestamp()
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()
14-битовое значение последовательности тактов формируется из поля последовательности тактов этого UUID. Поле последовательности тактов используется для обеспечения временной уникальности UUID на основе времени.
Значение clockSequence имеет смысл только для UUID на основе времени с номером версии 1. Если этот UUID не является UUID на основе времени, данный метод выбрасывает UnsupportedOperationException.
- Возвращает:
- Последовательность тактов этого
UUID - Выбрасывает:
-
UnsupportedOperationException— если этот UUID не является UUID версии 1
node
public long node()
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"
hashCode
equals
public boolean equals(Object obj)
true тогда и только тогда, когда аргумент не является null, является объектом UUID, имеет тот же вариант и содержит то же значение побитно, что и этот UUID.compareTo
public int compareTo(UUID val)
Первый из двух 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/UUID.html