Класс UUID
- Все реализованные интерфейсы:
-
Serializable,Comparable<UUID>
public final class UUID extends Object implements Serializable, Comparable<UUID>
Существуют различные варианты этих глобальных идентификаторов. Методы этого класса предназначены для работы с вариантом Leach-Salz, хотя конструкторы позволяют создавать любой вариант UUID (описанный ниже).
Структура UUID варианта 2 (Leach-Salz) выглядит следующим образом: Наиболее значимое целое число состоит из следующих беззнаковых полей:
0xFFFFFFFF00000000 time_low 0x00000000FFFF0000 time_mid 0x000000000000F000 version 0x0000000000000FFF time_hiНаименее значимое целое число состоит из следующих беззнаковых полей:
0xC000000000000000 variant 0x3FFF000000000000 clock_seq 0x0000FFFFFFFFFFFF node
Поле варианта содержит значение, которое определяет структуру UUID. Описанное выше расположение битов верно только для
UUID с вариантом 2, что указывает на вариант Leach-Salz.
Поле версии содержит значение, которое описывает тип данного
UUID. Существует четыре основных типа UUID: основанные на времени, безопасности DCE, на основе имени и случайные UUID. Эти типы имеют значения версии 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 типа 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 бит
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
- 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. Поле clock sequence используется для обеспечения временной уникальности в 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, 2021, 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/17/docs/api/java.base/java/util/UUID.html