UUID to powszechnie używany, 128-bitowy, unikalny numer identyfikacyjny w systemie komputerowym. Składa się z cyfr szesnastkowych oddzielonych czterema myślnikami. W tej części omówimy co to jest UUID I jak losowo wygenerować UUID (wersja 4) w Javie .
UUID
UUID oznacza Uniwersalnie unikalny identyfikator . Identyfikatory UUID są standaryzowane przez Open Software Foundation (OSF). Jest częścią Distributive Computing Environment (DCE). UUID to unikalny numer o długości 36 znaków (128 bitów). Znany jest również jako Globalnie unikalny identyfikator (GUID).
Użycie identyfikatora UUID zależy od sytuacji, przypadków użycia, złożoności i warunków. Oto niektóre zastosowania identyfikatora UUID:
- Służy do generowania unikalnych nazw URN (Uniform Resource Names).
- Można go również wykorzystać do generowania identyfikatorów transakcji.
- Szeroko stosowany w zastosowaniach kryptograficznych.
- W aplikacji internetowej może służyć do generowania identyfikatorów sesji.
Rodzaje UUID
Istnieją cztery typy identyfikatorów UUID:
inaczej, jeśli Java
- UUID oparty na czasie (wersja 1)
- UUID zabezpieczeń DCE (wersja 2)
- UUID oparty na nazwie (wersja 3 i 5)
- Losowo generowany identyfikator UUID (wersja 4)
Warianty UUID
Istnieje wiele wariantów identyfikatora UUID, ale Sól ługowa wariant jest powszechnie stosowany. Układ wariantu 2 tj. Sól ługowa następująco:
MSB składają się z następujących pól bez znaku:
0xFFFFFFFF00000000 czas_niski
konwersja ciągu do tej pory
0x00000000FFFF0000 środek_czasu
Wersja 0x000000000000F000
0x0000000000000FFF czas_cześć
LSB składają się z następujących pól bez znaku:
nginx
Wariant 0xC000000000000000
0x3FFF000000000000 zegar_sekw
Węzeł 0x0000FFFFFFFFFFFF
Pole wariantu zawiera wartość identyfikującą układ identyfikatora UUID. Omówiony powyżej układ obowiązuje tylko dla wariantu 2.
Klasa UUID Java
Do generowania UUID , język programowania Java udostępnia klasę UUID. Klasa należy do java.util pakiet. Rozszerza klasę Object i implementuje serializować I porównywalny interfejs. Klasa generuje niezmienny identyfikator UUID, który reprezentuje wartość 128-bitową.
Metody klas UUID Java
Metody | Opis |
---|---|
sekwencja zegara() | Zwraca wartość sekwencji zegara powiązaną z określonym UUID. |
porównać do() | Metoda porównuje UUID z konkretnym UUID. |
równa się() | Metoda porównuje ten obiekt z określonym obiektem. |
zString() | Generuje UUID na podstawie reprezentacji String. |
getLeastSignificantBits() | Zwraca najmniej znaczące 64 bity ze 128-bitowej wartości tego identyfikatora UUID. |
pobierzMostSignificantBits() | Zwraca najbardziej znaczące 64 bity ze 128-bitowej wartości tego identyfikatora UUID. |
hashCode() | Zwraca kod skrótu dla tego UUID. |
nazwaUUIDFromBytes() | Pobiera identyfikator UUID w wersji 3 (oparty na nazwie) na podstawie określonej tablicy bajtów. |
węzeł() | Zwraca wartość węzła powiązaną z określonym identyfikatorem UUID. |
losowyUUID() | Zwraca losowo wygenerowany UUID. |
znak czasu() | Zwraca wartość znacznika czasu powiązaną z określonym identyfikatorem UUID. |
doString() | Zwraca obiekt String reprezentujący ten UUID. |
wariant() | Służy do uzyskania wariantu powiązanego z określonym UUID. |
wersja() | Możemy uzyskać numer wersji powiązany z określonym UUID. |
Generowanie identyfikatora UUID
Poniższy przykład generuje losowy identyfikator UUID.
niedeterministyczne automaty skończone
UUIDEPrzykład.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); } }
Wyjście:
2b733549-d2cc-40f0-b7f3-9bfa9f3c1b89
Konwertuj z ciągu na UUID
StringToUUIDEPrzykład.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)); } }
Wyjście:
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