Java Generera UUID
UUID är ett allmänt använt 128-bitars långt unikt identifikationsnummer i datorsystemet. Den består av sexsiffror separerade med fyra bindestreck. I det här avsnittet kommer vi att diskutera vad är UUID och hur man slumpmässigt genererar UUID (version 4) i Java .
UUID
UUID står för Universellt unik ID . UUID är standardiserade av Open Software Foundation (OSF). Det är en del av Distributive Computing Environment (DCE). Ett UUID är 36 tecken (128-bitars) långt unikt nummer. Det är också känt som en Globally Unique IDentifier (GUID).
Användningen av UUID beror på situationen, användningsfall, komplexitet och förutsättningar. Några av användningarna av UUID är:
- Den används för att generera unika URN (Uniform Resource Names).
- Den kan också användas för att generera transaktions-ID:n.
- Används ofta i en kryptografisk applikation.
- I en webbapplikation kan den användas för att generera sessions-ID:n.
Typer av UUID
Det finns fyra typer av UUID:er:
- Tidsbaserat UUID (version 1)
- DCE säkerhet UUID (version 2)
- Namnbaserat UUID (version 3 och 5)
- Slumpmässigt genererad UUID (version 4)
Varianter av UUID
Det finns många varianter av UUID men Laka salt variant används flitigt. Layouten av variant 2 d.v.s. Laka salt enligt följande:
MSB:erna består av följande osignerade fält:
0xFFFFFFFF00000000 time_low
0x00000000FFFF0000 time_mid
0x000000000000F000 version
0x0000000000000FFF time_hi
LSBs består av följande osignerade fält:
0xC0000000000000000 variant
0x3FFF000000000000 klockföljd
0x0000FFFFFFFFFFFF nod
Variantfältet innehåller ett värde som identifierar layouten för UUID. Den ovan diskuterade layouten är endast giltig för variant 2.
Java UUID-klass
För att generera UUID , Java-programmeringsspråket tillhandahåller UUID-klassen. Klassen tillhör java.util paket. Den utökar klassen Object och implementerar serialiserbar och jämförbar gränssnitt. Klassen genererar ett oföränderligt UUID som representerar ett 128-bitars värde.
Java UUID klassmetoder
| Metoder | Beskrivning |
|---|---|
| clockSequence() | Den returnerar klocksekvensvärdet som är associerat med denna specificerade UUID. |
| jämföra med() | Metoden jämför UUID med det specifika UUID. |
| lika() | Metoden jämför detta objekt med det angivna objektet. |
| fromString() | Den genererar ett UUID från strängrepresentationen. |
| getLeastSignificantBits() | Den returnerar de minst signifikanta 64 bitarna av denna UUID:s 128-bitars värde. |
| getMostSignificantBits() | Den returnerar de mest signifikanta 64 bitarna av denna UUID:s 128-bitars värde. |
| hash-kod() | Den returnerar en hashkod för denna UUID. |
| namnUUIDFromBytes() | Den hämtar ett version-3 (namnbaserat) UUID baserat på den angivna byte-arrayen. |
| nod() | Den returnerar ett nodvärde som är associerat med det angivna UUID. |
| randomUUID() | Den returnerar ett slumpmässigt genererat UUID. |
| tidsstämpel() | Den returnerar ett tidsstämpelvärde som är associerat med detta angivna UUID. |
| att stränga() | Den returnerar ett String-objekt som representerar detta UUID. |
| variant() | Den används för att få varianten associerad med det angivna UUID. |
| version() | Vi kan få versionsnumret som är kopplat till det angivna UUID. |
Genererar ett UUID
Följande exempel genererar ett slumpmässigt 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); } } Produktion:
2b733549-d2cc-40f0-b7f3-9bfa9f3c1b89
Konvertera från en sträng till ett 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)); } } Produktion:
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