Класс 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
Поле 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
- Внешние спецификации
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
UUID |
Создает новый UUID с использованием указанных данных. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
clockSequence() |
Значение последовательности часов, связанное с этим UUID. |
int |
compareTo |
Сравнивает этот UUID с указанным UUID. |
boolean |
equals |
Сравнивает этот объект с указанным объектом. |
static UUID |
fromString |
Создаёт UUID из строкового представления, как описано в методе toString(). |
long |
getLeastSignificantBits() |
Возвращает наименее значимые 64 бита значения этого UUID, состоящего из 128 бит. |
long |
getMostSignificantBits() |
Возвращает наиболее значимые 64 бита значения этого UUID, состоящего из 128 бит. |
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 бита значения UUID размером 128 бит
getMostSignificantBits
public long getMostSignificantBits()
- Возвращает:
- Наиболее значимые 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 - Внешние спецификации
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 бит формируется из поля clock sequence этого UUID. Поле последовательности отсчётов времени используется для гарантии временной уникальности в UUID, основанном на времени.
Значение последовательности отсчётов времени имеет смысл только в UUID, основанном на времени, который имеет тип версии 1. Если этот UUID не является UUID, основанным на времени, этот метод выбрасывает UnsupportedOperationException.
- Возвращает:
- Последовательность отсчётов времени этого
UUID - Исключения:
-
UnsupportedOperationException- Если этот UUID не UUID версии 1
узел
public long node()
Значение узла размером 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"
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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/UUID.html