java uuid生成器

Java UUID (Java UUID)

Java UUID (Universally Unique Identifier) class is part of java.util package. Java UUID class represents an immutable universally unique identifier and represents 128-bit value. It is also known as GUID (Globally Unique Identifier).

Java UUID(通用唯一标识符)类是java.util包的一部分。 Java UUID类表示一个不变的通用唯一标识符,并表示128位值。 也称为GUID(全局唯一标识符)。

Java UUID用法 (Java UUID Usage)

Java UUID is used to create following:

Java UUID用于创建以下内容:

  • Random File Name随机文件名
  • Session Id for Java Web ApplicationJava Web应用程序的会话ID
  • Primary Key for Database Table数据库表的主键
  • Transaction Id交易编号

Java UUID构造函数 (Java UUID Constructor)

public UUID(long  mostSigBits,  long  leastSigBits)

Creates a new UUID using specified data.

使用指定的数据创建新的UUID。

UUID版本和变体 (UUID Version & Variants)

There are different variants of UUID but mostly we will see variant 2 (Leach-Salz) in our examples.

UUID有不同的变体,但是在大多数示例中,我们将看到变体2(Leach-Salz)。

UUID variants:

UUID变体:

  1. 0 – Reserved for NCS backward compatibility0 –保留用于NCS向后兼容
  2. 2 – Leach-Salz2 –里奇-萨尔茨
  3. 6 – Reserved, Microsoft Corporation backward compatibility6 –保留,Microsoft Corporation向后兼容
  4. 7 – Reserved for future definition7 –保留以供将来定义

UUID Versions:

UUID版本:

  1. time-based(version 1)基于时间(版本1)
  2. DCE Security(version 2)DCE安全性(版本2)
  3. name-based(version 3)基于名称(版本3)
  4. randomly generated UUID(version 4)随机生成的UUID(版本4)

Java UUID生成器 (Java UUID Generator)

We can use java-uuid-generator maven dependency for generating UUID. You can include that using below maven dependency.

我们可以使用java-uuid-generator maven依赖项来生成UUID。 您可以使用下面的maven依赖项将其包括在内。

<dependency><groupId>com.fasterxml.uuid</groupId><artifactId>java-uuid-generator</artifactId><version>3.1.4</version>
</dependency>

Let’s have a look at the below java uuid generator example program.

让我们看一下下面的java uuid generator示例程序。

package com.journaldev.examples;import java.util.UUID;import com.fasterxml.uuid.Generators;/*** Java UUID Generator**/
public class UUIDVersionExample {public static void main(String[] args) {//Generate time-based UUIDUUID uuid1 = Generators.timeBasedGenerator().generate();System.out.println("UUID : "+uuid1);System.out.println("UUID Version : "+uuid1.version());System.out.println("UUID Variant : "+uuid1.variant());//Generate random UUIDUUID uuid2 = Generators.randomBasedGenerator().generate();System.out.println("UUID : "+uuid2);System.out.println("UUID Version : "+uuid2.version());System.out.println("UUID Variant : "+uuid2.variant());}}

Output of the above uuid generator program is below:

上面的uuid生成器程序的输出如下:

UUID : 5fc03087-d265-11e7-b8c6-83e29cd24f4c
UUID Version : 1
UUID Variant : 2
UUID : e8e3db08-dc39-48ea-a3db-08dc3958eafb
UUID Version : 4
UUID Variant : 2

Java UUID方法 (Java UUID Methods)

Let’s have a look at the below UUID methods with example program.

让我们看一下下面的带有示例程序的UUID方法。

  1. randomUUID(): This is a static factory method to fetch type 4 random UUID.randomUUID() :这是一种静态工厂方法,用于获取类型4随机UUID。
  2. package com.journaldev.examples;import java.util.UUID;
    /*** Java UUID randomUUID Example**/
    public class UUIDExample {public static void main(String[] args) {//initialize uuidUUID uuid = UUID.randomUUID();System.out.println(uuid);}}

    Output of the above program is below:

    上面程序的输出如下:

    84cff9ea-de0f-4841-8645-58620adf49b2
  3. fromString(String name): This method creates UUID from specified string. This is useful when you have to convert string to UUID object.fromString(String name) :此方法从指定的string创建UUID。 当您必须将字符串转换为UUID对象时,这很有用。
  4. package com.journaldev.examples;import java.util.UUID;
    /*** Java UUID fromString Example**/
    public class UUIDExample {public static void main(String[] args) {//initialize uuidUUID uuid = UUID.fromString("84cff9ea-de0f-4841-8645-58620adf49b2");System.out.println(uuid);}}
  5. clockSequence(): This method returns clock sequence associated with UUID and to fetch clock sequence we need to create time-based (version 1) UUID otherwise it will throw UnsupportedOperationException.clockSequence() :此方法返回与UUID关联的时钟序列,并且要获取时钟序列,我们需要创建基于时间的(版本1)UUID,否则它将抛出UnsupportedOperationException
  6. package com.journaldev.examples;import java.util.UUID;import com.fasterxml.uuid.Generators;/*** Java UUID Clock Sequence Program**/
    public class UUIDClockSequenceExample {public static void main(String[] args) {// Generate time-based UUIDUUID uuid = Generators.timeBasedGenerator().generate();System.out.println("UUID : " + uuid);System.out.println("UUID Clock Sequence : "+uuid.clockSequence());}
    }

    Output of the above program is below:

    上面程序的输出如下:

    UUID : 52334bd0-d266-11e7-a11d-0148035fb8f1UUID Clock Sequence : 8477
  7. getLeastSignificantBits(): This method returns least significant 64 bits of UUID.getLeastSignificantBits() :此方法返回UUID的最低有效64位。
  8. getMostSignificantBits(): This method returns most significant 64 bits of UUID.getMostSignificantBits() :此方法返回UUID的最高有效64位。
  9. package com.journaldev.examples;import java.util.UUID;/*** Java UUID Least and Most Significant Bits Example Program**/
    public class UUIDLsbMsbExample {public static void main(String[] args) {//initialize uuidUUID uuid = UUID.randomUUID();System.out.println("UUID : "+uuid);System.out.println("Least Significant Bits : "+uuid.getLeastSignificantBits());System.out.println("Most Significant Bits : "+uuid.getMostSignificantBits());}}

    Output of the above java UUID example program is:

    上面的Java UUID示例程序的输出为:

    UUID : 5b08be16-2cb6-46d5-bf98-7d7d750df0ca
    Least Significant Bits : -4640821438217064246
    Most Significant Bits : 6559701859713828565
  10. nameUUIDFromBytes(byte[] name): This is a static factory method and used to fetch name-based (version 3) UUID using specified byte array.nameUUIDFromBytes(byte[] name) :这是一个静态工厂方法,用于使用指定的字节数组获取基于名称的(版本3)UUID。
  11. package com.journaldev.examples;import java.util.UUID;/*** Java UUID From Byte Array Example Program**/
    public class UUIDFromBytesExample {public static void main(String[] args) {//initialize byte arraybyte[] bs = {1, 2, 3};//initialize uuid using byte arrayUUID uuid = UUID.nameUUIDFromBytes(bs);System.out.println("UUID : "+uuid);System.out.println("UUID Version : "+uuid.version());}}

    Output of the above program is:

    上面程序的输出是:

    UUID : 5289df73-7df5-3326-bcdd-22597afb1fac
    UUID Version : 3
  12. node(): This method returns long value of node from UUID and to fetch node value we need to create time-based (version 1) UUID otherwise it will throw UnsupportedOperationException.node() :此方法从UUID返回节点的long值,并且要获取节点值,我们需要创建基于时间的(版本1)UUID,否则它将抛出UnsupportedOperationException
  13. package com.journaldev.examples;import java.util.UUID;import com.fasterxml.uuid.Generators;/*** Java UUID Node Example Program**/
    public class UUIDNodeExample {public static void main(String[] args) {//Generate time-based uuidUUID uuid = Generators.timeBasedGenerator().generate();System.out.println("UUID : "+uuid);System.out.println("UUID Version : "+uuid.version());System.out.println("UUID Node : "+uuid.node());}}
    UUID : 2e15baa3-d272-11e7-a479-05de8af2b6bd
    UUID Version : 1
    UUID Node : 6453372040893
  14. timestamp(): This method returns timestamp value of UUID UUID and to fetch timestamp value we need to create time-based(version 1) UUID otherwise it will throw UnsupportedOperationException.timestamp() :此方法返回UUID UUID的时间戳值,并获取时间戳值,我们需要创建基于时间的(版本1)UUID,否则它将抛出UnsupportedOperationException。
package com.journaldev.examples;import java.util.UUID;import com.fasterxml.uuid.Generators;/*** Java UUID timestamp Example Program**/
public class UUIDTimestampExample {public static void main(String[] args) {// Generate time-based uuidUUID uuid = Generators.timeBasedGenerator().generate();System.out.println("UUID : " + uuid);System.out.println("UUID Version : " + uuid.version());System.out.println("UUID Timestamp : " + uuid.timestamp());}}

Output of the above program is:

上面程序的输出是:

UUID : 61614667-d279-11e7-a5ac-f941ac8dfc39
UUID Version : 1
UUID Timestamp : 137309732424730215

使用构造函数创建UUID (Create UUID Using Constructor)

Let’s have a look at the below example program to create UUID using it’s constructor.

让我们看一下下面的示例程序,使用它的构造函数创建UUID。

package com.journaldev.examples;import java.util.UUID;/*** Java UUID Using Constructor Example Program**/
public class UUIDUsingConstructor {public static void main(String[] args) {long msb = System.currentTimeMillis();long lsb = System.currentTimeMillis();//initialize uuidUUID uuid = new UUID(msb, lsb);System.out.println("UUID : "+uuid);}}

比较两个UUID (Compare Two UUIDs)

Java UUID class provides two methods to compare UUIDs.

Java UUID类提供了两种比较UUID的方法。

  1. compareTo(UUID val): UUID class implements Comparable interface. This method compare UUID with specified value of UUID and returns integer value which can be -1, 0 or 1.compareTo(UUID val) :UUID类实现Comparable 接口 。 此方法将UUID与UUID的指定值进行比较,并返回可以为-1、0或1的整数值。
  • -1: This UUID is less than specified value of UUID-1:此UUID小于UUID的指定值
  • 0: This UUID is equal to specified value of UUID0:此UUID等于UUID的指定值
  • 1: This UUID is greater than specified value of UUID1:该UUID大于UUID的指定值

Let’s have a look at the below example program.

让我们看一下下面的示例程序。

package com.journaldev.examples;import java.util.UUID;/*** Java UUID compareTo Example Program**/
public class UUIDCompareToExample {public static void main(String[] args) {//initialize uuidsUUID uuid1 = UUID.randomUUID();UUID uuid2 = UUID.randomUUID();int result = uuid1.compareTo(uuid2);if (result == -1) {System.out.println("UUID1 is less than UUID2");}else if (result == 0) {System.out.println("Both are Equal UUID");}else if (result == 1) {System.out.println("UUID1 is greater than UUID2");}}}

Output will depend on the randomly generated UUID values, we can’t predict it.

输出将取决于随机生成的UUID值,我们无法预测。

  • equals(Object obj): This method compares UUID with specified object and returns true if the specified object is not null and is of type UUID and is of same variant and contains the same value.equals(Object obj) :此方法将UUID与指定的对象进行比较,如果指定的对象不为null且类型为UUID且具有相同的变体且包含相同的值,则返回true。
  • package com.journaldev.examples;import java.util.UUID;/*** Java UUID equals Example Program**/
    public class UUIDEqualsExample {public static void main(String[] args) {// initialize uuidsUUID uuid1 = UUID.randomUUID();UUID uuid2 = UUID.randomUUID();System.out.println(uuid1.equals(uuid2));}}

    That’s all for Java UUID class. It’s a great utility class and you can use it to create unique identifiers.

    Java UUID类就这些了。 这是一个很棒的实用程序类,您可以使用它来创建唯一的标识符。

    Reference: API Doc, RFC 4122

    参考: API文档 , RFC 4122

    翻译自: https://www.journaldev.com/17182/java-uuid-generator-java-guid

    java uuid生成器

java uuid生成器_Java UUID生成器– Java GUID相关推荐

  1. java uuid 效率_java uuid第一次性能

    在java中产生uuid的方式是使用java.util.UUID. UUID.randomUUID().toString(); 我在测试redis性能时,使用uuid产生测试数据,发现多线程测试red ...

  2. java uuid静态方法_Java UUID equals()方法与示例

    java uuid静态方法 UUID类equals()方法 (UUID Class equals() method) equals() method is available in java.util ...

  3. java uuid静态方法_Java UUID toString()方法与示例

    java uuid静态方法 UUID类toString()方法 (UUID Class toString() method) toString() method is available in jav ...

  4. java uuid静态方法_Java UUID compareTo()方法与示例

    java uuid静态方法 UUID类compareTo()方法 (UUID Class compareTo() method) compareTo() method is available in ...

  5. java uuid静态方法_Java UUID timestamp()方法与示例

    java uuid静态方法 UUID类timestamp()方法 (UUID Class timestamp() method) timestamp() method is available in ...

  6. java uuid静态方法_Java UUID getLeastSignificantBits()方法与示例

    java uuid静态方法 UUID类getLeastSignificantBits()方法 (UUID Class getLeastSignificantBits() method) getLeas ...

  7. java uuid静态方法_Java UUID的variant()方法和示例

    java uuid静态方法 UUID类variant()方法 (UUID Class variant() method) variant() method is available in java.u ...

  8. java uuid静态方法_Java UUID nameUUIDFromBytes()方法及示例

    java uuid静态方法 UUID类名UUIDFromBytes()方法 (UUID Class nameUUIDFromBytes() method) nameUUIDFromBytes() me ...

  9. java uuid静态方法_Java UUID version()方法与示例

    java uuid静态方法 UUID Class version()方法 (UUID Class version() method) version() method is available in ...

  10. java 虚拟机规范_Java虚拟机规范----Java虚拟机结构

    Java体系和一些基本概念 Java平台的结构图: JVM与JRE.JDK关系? JVM:Java Virtual Machine(Java虚拟机),负责执行符合规范的Class文件 JRE: Jav ...

最新文章

  1. c语言解析xml字符串_Python XML解析
  2. XNA游戏:软键盘弹窗输入
  3. Lesson 16.5 在Pytorch中实现卷积网络(上):卷积核、输入通道与特征图在PyTorch中实现卷积网络(中):步长与填充
  4. sqlmap自动扫描注入点_同天上降魔主,真是人间太岁神——SQLMAP 高级教程
  5. 根据数据建立分析模型是什么意思
  6. 微型计算机原理及应用论文,微型计算机原理及应用7030112997-TP19300101.pdf
  7. latex 目录层次设置
  8. 软件开发和服务项目价格构成及评估方法
  9. 阿里云播放器Aliplayer-WEB走坑中
  10. 使用Hexo 在本地搭建博客(一)
  11. Marshmallow详解
  12. 老款Mac装win10黑屏或灰屏
  13. ERROR: Cannot uninstall ‘filelock‘. It is a distutils installed project and thus we cannot accuratel
  14. IOS逆向(1)IOS越狱
  15. zlib——Usage Example翻译
  16. 小白到高级UI设计师,如何实现完美蜕变?
  17. 语音识别芯片的基本原理和工作流程
  18. JAVA中native方法(实现例子)
  19. smartgit官方下载地址
  20. 5g时代php发展趋势,5g时代还有多久到来

热门文章

  1. oracle快速解析,教你用Oracle解析函数快速检查序列间隙
  2. php转义还原,PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例_PHP
  3. 枚举类比较和工具方法
  4. Mac os下gcc编译错误解决方案
  5. python实现三级菜单
  6. C语言:使用递归解决汉诺塔问题。
  7. 基于钉钉服务简单监控
  8. Mybatis系列(四)注解
  9. brace源码改造实现跨服务器监控-zjs
  10. (转载)高光谱数据读取by multibandread函数