Класс 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) следующая: наиболее значимое целое число состоит из следующих беззнаковых полей:
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, основанные на имени и сгенерированные случайным образом. Эти типы имеют значения версии 1, 2, 3 и 4 соответственно.
Для получения дополнительной информации, включая алгоритмы создания UUIDs, см. RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace, раздел 4.2 "Алгоритмы создания временного UUID".
- С тех пор:
- 1.5
- См. также:
- Сериализованная форма
Конструкторы
| Конструктор и описание |
|---|
UUID(long mostSigBits,
long leastSigBits) Создает новый |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
int |
clockSequence() Значение последовательности часов, связанное с этим UUID. |
int |
compareTo(UUID val) Сравнивает этот UUID с указанным UUID. |
boolean |
equals(Object obj) Сравнивает этот объект с указанным объектом. |
static UUID |
fromString(String name) Создает |
long |
getLeastSignificantBits() Возвращает наименее значимые 64 бита значения 128-битового UUID. |
long |
getMostSignificantBits() Возвращает наиболее значимые 64 бита значения 128-битового UUID. |
int |
hashCode() Возвращает хэш-код для этого |
static UUID |
nameUUIDFromBytes(byte[] name) Статический фабричный метод для получения UUID типа 3 (основанного на имени) на основе заданного массива байтов. |
long |
node() Значение узла, связанное с этим UUID. |
static UUID |
randomUUID() Статический фабричный метод для получения UUID типа 4 (генерируемого псевдослучайным образом). |
long |
timestamp() Значение временной метки, связанное с этим UUID. |
String |
toString() Возвращает объект |
int |
variant() Номер варианта, связанный с этим |
int |
version() Номер версии, связанный с этим |
Методы, унаследованные от класса java.lang.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 (на основе имени) 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 бит.
- Возвращает:
- Наименее значимые 64 бита значения этого UUID, состоящего из 128 бит
getMostSignificantBits
public long getMostSignificantBits()
Возвращает наиболее значимые 64 бита значения этого UUID, состоящего из 128 бит.
- Возвращает:
- Наиболее значимые 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()
Значение временной метки, связанное с этим UUID.
Значение временной метки в 60 бит строится из полей time_low, time_mid и time_hi этого UUID. Полученная временная метка измеряется в единицах 100 наносекунд с полуночи 15 октября 1582 года по UTC.
Значение временной метки имеет смысл только в time-based UUID, у которого тип версии 1. Если этот UUID не является time-based UUID, то этот метод выбросит исключение UnsupportedOperationException.
- Возвращает:
- Временную метку этого
UUID. - Исключения:
-
UnsupportedOperationException- Если этот UUID не UUID версии 1
clockSequence
public int clockSequence()
Значение последовательности часов, связанное с этим UUID.
Значение последовательности часов в 14 бит построено из поля clock sequence этого UUID. Поле clock sequence используется для обеспечения временной уникальности в time-based UUID.
Значение последовательности часов имеет смысл только в time-based UUID, у которого тип версии 1. Если этот UUID не является time-based UUID, то этот метод выбросит исключение UnsupportedOperationException.
- Возвращает:
- Последовательность часов этого
UUID - Исключения:
-
UnsupportedOperationException- Если этот UUID не UUID версии 1
node
public long node()
Значение узла, связанное с этим UUID.
Значение узла в 48 бит построено из поля node этого UUID. Это поле предназначено для хранения адреса IEEE 802 машины, которая сгенерировала этот UUID для обеспечения пространственной уникальности.
Значение узла имеет смысл только в time-based UUID, у которого тип версии 1. Если этот UUID не является time-based UUID, то этот метод выбросит исключение UnsupportedOperationException.
- Возвращает:
- Значение узла этого
UUID - Исключения:
-
UnsupportedOperationException- Если этот UUID не UUID версии 1
toString
public String toString()
Возвращает строковое представление этого 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
public int hashCode()
Возвращает хеш-код этого UUID.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- Значение хеш-кода этого
UUID - См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.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, в зависимости от того, меньше, равно или больше, чем
val
© 1993, 2020, 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.