UUID е широко използван 128-битов уникален идентификационен номер в компютърната система. Състои се от шестнадесетични цифри, разделени с четири тирета. В този раздел ще обсъдим какво е UUID и как произволно да генерирате UUID (версия 4) в Java .
UUID
UUID означава Универсално уникален идентификатор . UUID са стандартизирани от Open Software Foundation (OSF). Той е част от Distributive Computing Environment (DCE). UUID е уникален номер с дължина 36 знака (128 бита). Известен е още като a Глобален уникален идентификатор (GUID).
Използването на UUID зависи от ситуацията, случаите на употреба, сложността и условията. Някои от употребите на UUID са:
- Използва се за генериране на уникален URN (Uniform Resource Names).
- Може да се използва и за генериране на идентификатори на транзакции.
- Широко използван в криптографско приложение.
- В уеб приложение може да се използва за генериране на идентификатори на сесии.
Видове UUID
Има четири вида UUID:
- Базиран на времето UUID (версия 1)
- DCE защитен UUID (версия 2)
- Базиран на име UUID (версия 3 и 5)
- Произволно генериран UUID (версия 4)
Варианти на UUID
Има много варианти на UUID, но Сол за излугване вариантът е широко използван. Оформлението на вариант 2, т.е. Сол за излугване е както следва:
MSB се състои от следните неподписани полета:
0xFFFFFFFF00000000 ниско време
0x00000000FFFF0000 време_среда
0x000000000000F000 версия
0x0000000000000FFF time_hi
LSB се състои от следните неподписани полета:
0xC000000000000000 вариант
0x3FFF000000000000 clock_seq
0x0000FFFFFFFFFFFF възел
Полето за вариант съдържа стойност, която идентифицира оформлението на UUID. Обсъденото по-горе оформление е валидно само за вариант 2.
Java UUID клас
За генериране на UUID , езикът за програмиране Java предоставя UUID класа. Класът принадлежи на java.util пакет. Той разширява класа Object и имплементира може да се сериализира и сравними интерфейс. Класът генерира неизменен UUID, който представлява 128-битова стойност.
Java UUID клас методи
Методи | Описание |
---|---|
clockSequence() | Той връща стойността на тактовата последователност, свързана с този указан UUID. |
сравни с() | Методът сравнява UUID с конкретния UUID. |
равно на() | Методът сравнява този обект с посочения обект. |
fromString() | Той генерира UUID от представянето на низ. |
getLeastSignificantBits() | Той връща най-малко значимите 64 бита от 128-битовата стойност на този UUID. |
getMostSignificantBits() | Той връща най-значимите 64 бита от 128-битовата стойност на този UUID. |
хеш код() | Той връща хеш код за този UUID. |
имеUUIDFromBytes() | Той извлича версия-3 (базиран на име) UUID въз основа на посочения байтов масив. |
възел () | Той връща стойност на възел, която е свързана с посочения UUID. |
randomUUID() | Той връща произволно генериран UUID. |
клеймо за време () | Връща стойност на клеймо за време, свързана с този указан UUID. |
toString() | Той връща String обект, представляващ този UUID. |
вариант() | Използва се за получаване на варианта, свързан с посочения UUID. |
версия() | Можем да получим номера на версията, свързан с посочения UUID. |
Генериране на UUID
Следващият пример генерира случаен UUID.
UUIDExample.java
import java.util.UUID; public class UUIDExample { public static void main(String args[]) { //generates random UUID UUID uuid=UUID.randomUUID(); System.out.println(uuid); } }
Изход:
2b733549-d2cc-40f0-b7f3-9bfa9f3c1b89
Преобразуване от низ в UUID
StringToUUIDExample.java
import java.util.UUID; public class StringtoUUIDExample { public static void main(String args[]) { //randomly generates a UUID UUID uuid = UUID.randomUUID(); System.out.println('Randomly Generated UUID: '+uuid); //converts the randomly generated UUID into String String uuidAsString = uuid.toString(); System.out.println('UUID as String: '+uuidAsString); //generates a UUID from the String UUID sameUuid = UUID.fromString(uuidAsString); System.out.println('UUID from String: '+sameUuid); //compares UUID generated from the string with the randomly generated UUID System.out.println(sameUuid.equals(uuid)); } }
Изход:
Randomly Generated UUID: fe8a03d7-6495-4231-9843-8ee2f5282620 UUID as String: fe8a03d7-6495-4231-9843-8ee2f5282620 UUID from String: fe8a03d7-6495-4231-9843-8ee2f5282620 true