public final class

UUID

extends Object
implements Serializable Comparable<T>
java.lang.Object
   ↳ java.util.UUID

Class Overview

UUID is an immutable representation of a 128-bit universally unique identifier (UUID).

There are multiple, variant layouts of UUIDs, but this class is based upon variant 2 of RFC 4122, the Leach-Salz variant. This class can be used to model alternate variants, but most of the methods will be unsupported in those cases; see each method for details.

Summary

Public Constructors
UUID(long mostSigBits, long leastSigBits)

Constructs an instance with the specified bits.

Public Methods
int clockSequence()

The clock sequence value of the version 1, variant 2 UUID as per RFC 4122.

int compareTo(UUID uuid)

Compares this UUID to the specified UUID.

boolean equals(Object object)

Compares this UUID to another object for equality.

static UUID fromString(String uuid)

Parses a UUID string with the format defined by toString().

long getLeastSignificantBits()

The 64 least significant bits of the UUID.

long getMostSignificantBits()

The 64 most significant bits of the UUID.

int hashCode()

Returns a hash value for this UUID that is consistent with the equals(Object) method.

static UUID nameUUIDFromBytes(byte[] name)

Generates a variant 2, version 3 (name-based, MD5-hashed) UUID as per RFC 4122.

long node()

The node value of the version 1, variant 2 UUID as per RFC 4122.

static UUID randomUUID()

Generates a variant 2, version 4 (randomly generated number) UUID as per RFC 4122.

long timestamp()

The timestamp value of the version 1, variant 2 UUID as per RFC 4122.

String toString()

Returns a string representation of this UUID in the following format, as per RFC 4122.

int variant()

The variant of the UUID as per RFC 4122.

int version()

The version of the variant 2 UUID as per RFC 4122.

[Expand]
Inherited Methods
From class java.lang.Object
From interface java.lang.Comparable

Public Constructors

public UUID (long mostSigBits, long leastSigBits)

Constructs an instance with the specified bits.

Parameters
mostSigBits The 64 most significant bits of the UUID.
leastSigBits The 64 least significant bits of the UUID.

Public Methods

public int clockSequence ()

The clock sequence value of the version 1, variant 2 UUID as per RFC 4122.

Returns
  • a long value.

public int compareTo (UUID uuid)

Compares this UUID to the specified UUID. The natural ordering of UUIDs is based upon the value of the bits from most significant to least significant.

Parameters
uuid the UUID to compare to.
Returns
  • a value of -1, 0 or 1 if this UUID is less than, equal to or greater than uuid.

public boolean equals (Object object)

Compares this UUID to another object for equality. If object is not null, is a UUID instance, and all bits are equal, then true is returned.

Parameters
object the Object to compare to.
Returns
  • true if this UUID is equal to object or false if not.

public static UUID fromString (String uuid)

Parses a UUID string with the format defined by toString().

Parameters
uuid the UUID string to parse.
Returns
  • an UUID instance.
Throws
IllegalArgumentException if uuid is not formatted correctly.

public long getLeastSignificantBits ()

The 64 least significant bits of the UUID.

Returns
  • the 64 least significant bits.

public long getMostSignificantBits ()

The 64 most significant bits of the UUID.

Returns
  • the 64 most significant bits.

public int hashCode ()

Returns a hash value for this UUID that is consistent with the equals(Object) method.

Returns
  • an int value.

public static UUID nameUUIDFromBytes (byte[] name)

Generates a variant 2, version 3 (name-based, MD5-hashed) UUID as per RFC 4122.

Parameters
name the name used as byte array to create an UUID.
Returns
  • an UUID instance.

public long node ()

The node value of the version 1, variant 2 UUID as per RFC 4122.

Returns
  • a long value.

public static UUID randomUUID ()

Generates a variant 2, version 4 (randomly generated number) UUID as per RFC 4122.

Returns
  • an UUID instance.

public long timestamp ()

The timestamp value of the version 1, variant 2 UUID as per RFC 4122.

Returns
  • a long value.

public String toString ()

Returns a string representation of this UUID in the following format, as per RFC 4122.

            UUID                   = time-low "-" time-mid "-"
                                     time-high-and-version "-"
                                     clock-seq-and-reserved
                                     clock-seq-low "-" node
            time-low               = 4hexOctet
            time-mid               = 2hexOctet
            time-high-and-version  = 2hexOctet
            clock-seq-and-reserved = hexOctet
            clock-seq-low          = hexOctet
            node                   = 6hexOctet
            hexOctet               = hexDigit hexDigit
            hexDigit =
                "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" /
                "a" / "b" / "c" / "d" / "e" / "f" /
                "A" / "B" / "C" / "D" / "E" / "F"
 

Returns
  • a String instance.

public int variant ()

The variant of the UUID as per RFC 4122.

  • 0 - Reserved for NCS compatibility
  • 2 - RFC 4122/Leach-Salz
  • 6 - Reserved for Microsoft Corporation compatibility
  • 7 - Reserved for future use

Returns
  • an int value.

public int version ()

The version of the variant 2 UUID as per RFC 4122. If the variant is not 2, then the version will be 0.

  • 1 - Time-based UUID
  • 2 - DCE Security UUID
  • 3 - Name-based with MD5 hashing UUID (nameUUIDFromBytes(byte[]))
  • 4 - Randomly generated UUID (randomUUID())
  • 5 - Name-based with SHA-1 hashing UUID

Returns
  • an int value.