logo

Java ģenerēt UUID

UUID ir datorsistēmā plaši izmantots 128 bitu garš unikālais identifikācijas numurs. Tas sastāv no heksades cipariem, kas atdalīti ar četrām defisēm. Šajā sadaļā mēs apspriedīsim kas ir UUID un kā nejauši ģenerēt UUID (4. versija) Java .

UUID

UUID apzīmē Universāli unikāls identifikators . UUID ir standartizējis Open Software Foundation (OSF). Tā ir daļa no sadales skaitļošanas vides (DCE). UUID ir 36 rakstzīmes (128 bitu) garš unikāls numurs. Tas ir pazīstams arī kā a Globāli unikālais identifikators (GUID).

Java ģenerēt UUID

UUID izmantošana ir atkarīga no situācijas, lietošanas gadījumiem, sarežģītības un apstākļiem. Daži UUID lietojumi ir:

  • To izmanto, lai ģenerētu unikālus resursu nosaukumus (Uniform Resource Names).
  • To var izmantot arī darījumu ID ģenerēšanai.
  • Plaši izmanto kriptogrāfijas lietojumprogrammā.
  • Tīmekļa lietojumprogrammā to var izmantot, lai ģenerētu sesijas ID.

UUID veidi

Ir četri UUID veidi:

  • Uz laiku balstīts UUID (1. versija)
  • DCE drošības UUID (2. versija)
  • Uz vārdu balstīts UUID (3. un 5. versija)
  • Nejauši ģenerēts UUID (4. versija)

UUID varianti

Ir daudz UUID variantu, bet Izskalojiet sāli variants tiek plaši izmantots. 2. varianta izkārtojums t.i. Izskalojiet sāli ir šāds:

java vesels skaitlis uz virkni

MSB sastāv no šādiem neparakstītiem laukiem:

0xFFFFFFFF00000000 time_low

0x00000000FFFF0000 time_mid

0x000000000000F000 versija

0x0000000000000FFF time_hi

LSB sastāv no šādiem neparakstītiem laukiem:

java char uz virkni

0xC000000000000000 variants

0x3FFF000000000000 clock_seq

0x0000FFFFFFFFFFFF mezgls

Varianta laukā ir vērtība, kas identificē UUID izkārtojumu. Iepriekš apspriestais izkārtojums ir derīgs tikai 2. variantam.

nulles pārbaude Java

Java UUID klase

Lai ģenerētu UUID , Java programmēšanas valoda nodrošina UUID klasi. Klase pieder java.util iepakojums. Tas paplašina objektu klasi un ievieš serializējams un salīdzināmi saskarne. Klase ģenerē nemainīgu UUID, kas apzīmē 128 bitu vērtību.

Java UUID klases metodes

Metodes Apraksts
clockSequence() Tas atgriež pulksteņa secības vērtību, kas saistīta ar šo norādīto UUID.
Salīdzinot ar() Metode salīdzina UUID ar konkrēto UUID.
vienāds () Metode salīdzina šo objektu ar norādīto objektu.
fromString() Tas ģenerē UUID no virknes attēlojuma.
getLeastSignificantBits() Tas atgriež vismazāk nozīmīgos 64 bitus no šī UUID 128 bitu vērtības.
getMostSignificantBits() Tas atgriež nozīmīgākos 64 bitus no šī UUID 128 bitu vērtības.
hashCode() Tas atgriež šī UUID jaucējkodu.
nosaukumsUUIDNo baiti() Tas izgūst 3. versijas (uz nosaukuma balstītu) UUID, pamatojoties uz norādīto baitu masīvu.
mezgls () Tas atgriež mezgla vērtību, kas ir saistīta ar norādīto UUID.
nejaušsUUID() Tas atgriež nejauši ģenerētu UUID.
laika zīmogs () Tas atgriež laika zīmoga vērtību, kas saistīta ar šo norādīto UUID.
toString() Tas atgriež String objektu, kas pārstāv šo UUID.
variants() To izmanto, lai iegūtu variantu, kas saistīts ar norādīto UUID.
versija () Mēs varam iegūt versijas numuru, kas saistīts ar norādīto UUID.

UUID ģenerēšana

Šis piemērs ģenerē nejaušu UUID.

UUIDEpiemērs.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); } } 

Izvade:

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

Konvertējiet no virknes uz 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)); } } 

Izvade:

 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