Класс 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 с значением variant, равным 2, что указывает на вариант Leach-Salz.
Поле version содержит значение, описывающее тип этого
UUID. Существует четыре основных типа UUID: временные, безопасности DCE, основанные на имени и сгенерированные случайным образом. Эти типы имеют значения version 1, 2, 3 и 4 соответственно.
Дополнительная информация, включая алгоритмы создания UUIDs, см. в RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace, раздел 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 на основе указанного массива байтов.- Параметры:
-
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 бит)
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()
Значение временной метки (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
node
public long node()
Значение узла (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 - См. также:
equals
public boolean equals(Object obj)
true тогда и только тогда, когда аргумент не null, является объектом типа UUID, имеет тот же вариант и содержит то же значение, бит за битом, что и этот UUID.- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- Объект для сравнения - Возвращает:
-
trueесли объекты совпадают;falseв противном случае - См. также:
compareTo
public int compareTo(UUID val)
Первый из двух UUID больше второго, если наибольшее значимое поле, в котором UUID отличаются, больше для первого UUID.
- Определяет:
-
compareToв интерфейсеComparable<UUID> - Параметры:
-
val-UUID, с которым сравнивается этотUUID - Возвращает:
- -1, 0 или 1, в зависимости от того, меньше, равен или больше этот
UUIDчемval
© 1993, 2023, 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/21/docs/api/java.base/java/util/UUID.html