Быстрый взгляд! Я только сегодня узнал, что существует пять версий UUID

Java
Быстрый взгляд! Я только сегодня узнал, что существует пять версий UUID

Универсальный уникальный идентификатор(Английский:Universally Unique Idэнтификатор, аббревиатура:UUID) используется длякомпьютер128-битный идентификатор в системе для определения количества сообщений и связанных терминов:Глобально уникальный идентификатор(GUID).

Генерируется по стандартным методикам, не зависит отцентральное агентствоизрегистрираспространять,UUIDуникальный, в отличие от большинства другихНумерацияПланы разные. повторениеUUIDВероятность кода близка к нулю и ею можно пренебречь.

UUIDОн состоит из группы 32-значных шестнадцатеричных чисел, поэтомуUUIDТеоретическая сумма составляет 16 ^ 32 = 2 ^ 128, что примерно равно 3,4 x 10 ^ 38. То есть, если каждыйнаносекунция(нс) дает 1триллионПотребуется 10 миллиардов лет, чтобы израсходовать все UUID.

UUIDСтандартный тип содержит 32шестнадцатеричныйЧисла, сДефисделится на пять разделов в форме8-4-4-4-1232 символа.

Пример: 550e8400-e29b-41d4-a716-446655440000

UUID формат:

В своем каноническом текстовом представленииUUID16 октетов из 32 шестнадцатеричных (с основанием 16) цифр, отображаемых в пяти группах, разделенных дефисом «-», «8-4-4-4-12», всего 36 символов (32 буквенно-цифровых символа и 4 дефиса). Например:

123e4567-e89b-12d3-a456-426655440000
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

ps: сравните вверх и вниз, a представляет 10 в шестнадцатеричном формате

четыре цифрыMвыражатьUUIDномер версииNОт одного до трех старших битовUUIDВарианты. В примереMда1иNдаa(10xx), что означает, что этот UUID является UUID «вариант 1», «версия 1»; то есть основанный на времениDCE/RFC 4122 UUID.

UUID-версия:

Для «вариантов 1» и «вариантов 2» в стандарте определены пять версий, и каждая версия может быть более подходящей, чем другая, в конкретном случае использования.

М обозначается строкой версии.

Версия 1 - UUID генерируется из ID времени и узла (обычно MAC-адрес);

Версия 2 - UUID генерируется из идентификатора (обычно идентификатора группы или пользователя), времени и идентификатора узла;

Версия 3, Версия 5. Детерминированные UUID генерируются путем хеширования идентификаторов и имен пространства имен;

Версия 4 — использование UUIDслучайностьилипсевдослучайностьгенерировать.

Генерация UUID в Java:

Давайте представимJava UUIDкласс можно использовать для созданияUUIDМетоды:

1. randomUUID():

Он использует криптографически стойкий генератор псевдослучайных чисел для генерации псевдослучайных чисел v4.UUID:

UUID uuid = UUID.randomUUID();

2. nameUUIDFromBytes():

мы можем использоватьnameuidfrombytes ()генерировать из массива байтовUUID:

byte[] byteArr = {11, 23, 33};

UUID uuid = UUID.nameUUIDFromBytes(byteArr);

Этот метод генерирует UUID v3 (на основе имени).

3. fromString():

использоватьfromString (), мы можем создать из стандартного строкового представленияUUID:

UUID uuid = UUID.fromString("533a4559-e55c-18b3-2456-555563322002");

Для любой недопустимой строки, переданной в качестве параметра, будет выброшеноIllegalArgumentException.

Сравните два uuid:

Java UUIDДостигнутоComparableинтерфейс, поэтому мы можем использоватьcompareTo ()способ их сравнить

UUID uuid1 = UUID.randomUUID();
UUID uuid2 = UUID.randomUUID();
 
int` `result = uuid1.compareTo(uuid2);

как мы знаем,compareTo ()метод возвращает:

  • 1: если uuid1 больше, чем uuid2
  • 0: если uuid1=uuid2
  • -1: если uuid1 меньше uuid2

Мы также можем использоватьequals ()метод сравнения.

Суммировать:

В этом уроке мы узналиUUIDчто такое и его формат и версия. Мы также представляемjava UUIDсозданный классuuidМетоды.

Об авторе

Привет всем, я дядя Май, в настоящее время работаю вJava-разработка, Front-end и back-end знаю немного. Надеюсь, что мои друзья, которым я нравлюсь, обратят внимание на мой личный паблик-аккаунт, чтобы было удобно получать информацию о статье из первых рук. Конечно, вы также можете добавить мой личный WeChat (справа внизу), каждый может подружиться, спасибо за вашу поддержку.