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).
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