logo

Java Generer UUID

UUID er et mye brukt 128-bit langt unikt identifikasjonsnummer i datasystemet. Den består av sekskantede sifre atskilt med fire bindestreker. I denne delen vil vi diskutere hva er UUID og hvordan tilfeldig generere UUID (versjon 4) i Java .

UUID

UUID står for Universelt unik identifikator . UUID-er er standardisert av Open Software Foundation (OSF). Det er en del av Distributive Computing Environment (DCE). En UUID er 36 tegn (128-bit) langt unikt nummer. Det er også kjent som en Globalt unik IDentifier (GUID).

Java Generer UUID

Bruken av UUID avhenger av situasjonen, brukstilfeller, kompleksitet og forhold. Noen av bruken av UUID er:

  • Den brukes til å generere unike URN (Uniform Resource Names).
  • Den kan også brukes til å generere transaksjons-IDer.
  • Mye brukt i en kryptografisk applikasjon.
  • I en nettapplikasjon kan den brukes til å generere økt-IDer.

Typer UUID

Det er fire typer UUID-er:

  • Tidsbasert UUID (versjon 1)
  • DCE-sikkerhet UUID (versjon 2)
  • Navnebasert UUID (versjon 3 og 5)
  • Tilfeldig generert UUID (versjon 4)

Varianter av UUID

Det finnes mange varianter av UUID men Utlut salt variant er mye brukt. Oppsettet til variant 2 dvs. Utlut salt er som følgende:

MSB-ene består av følgende usignerte felt:

0xFFFFFFFF00000000 time_low

0x00000000FFFF0000 time_mid

0x000000000000F000 versjon

0x0000000000000FFF time_hei

LSB-ene består av følgende usignerte felt:

0xC0000000000000000 variant

0x3FFF000000000000 klokkesekvens

0x0000FFFFFFFFFFFF node

Variantfeltet inneholder en verdi som identifiserer utformingen av UUID. Oppsettet ovenfor er kun gyldig for variant 2.

Java UUID klasse

For å generere UUID , gir programmeringsspråket Java UUID-klassen. Klassen tilhører java.util pakke. Den utvider Object-klassen og implementerer serialiserbar og sammenlignbare grensesnitt. Klassen genererer en uforanderlig UUID som representerer en 128-bits verdi.

Java UUID-klassemetoder

Metoder Beskrivelse
clockSequence() Den returnerer klokkesekvensverdien knyttet til denne spesifiserte UUID.
sammenligne med() Metoden sammenligner UUID med den spesifikke UUID.
er lik() Metoden sammenligner dette objektet med det spesifiserte objektet.
fromString() Den genererer en UUID fra String-representasjonen.
getLeastSignificantBits() Den returnerer de minst signifikante 64 bitene av denne UUIDs 128-bits verdi.
getMostSignificantBits() Den returnerer de mest betydningsfulle 64 bitene av denne UUIDs 128-bits verdi.
hashkode() Den returnerer en hash-kode for denne UUID.
navnUUIDFromBytes() Den henter en versjon-3 (navnbasert) UUID basert på den angitte byte-arrayen.
node() Den returnerer en nodeverdi som er knyttet til den angitte UUID.
randomUUID() Den returnerer en tilfeldig generert UUID.
tidsstempel() Den returnerer en tidsstempelverdi knyttet til denne angitte UUID.
toString() Den returnerer et String-objekt som representerer denne UUID.
variant() Den brukes for å få varianten knyttet til den angitte UUID.
versjon() Vi kan få versjonsnummeret knyttet til den angitte UUID.

Generer en UUID

Følgende eksempel genererer en tilfeldig UUID.

UUIDEeksempel.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); } } 

Produksjon:

 2b733549-d2cc-40f0-b7f3-9bfa9f3c1b89 

Konverter fra en streng til en 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)); } } 

Produksjon:

 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