`

UUIDGenerator (生成32位uuid串)

阅读更多
import java.io.Serializable;
import java.net.InetAddress;

public class UUIDGenerator {

	/**
	 * Description:生成形如‘2c9081261d50d1c4011d50d1c4320000’的32位uuid串
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		UUIDGenerator uuidGenerator = new UUIDGenerator();
		System.out.println(uuidGenerator.generate().toString());
	}
	 private static final int IP;
	 public static int IptoInt( byte[] bytes ) {
	  int result = 0;
	  for (int i=0; i<4; i++) {
	   result = ( result << 8 ) - Byte.MIN_VALUE + (int) bytes[i];
	  }
	  return result;
	 }
	 static {
	  int ipadd;
	  try {
	   ipadd = IptoInt( InetAddress.getLocalHost().getAddress() );
	  }
	  catch (Exception e) {
	   ipadd = 0;
	  }
	  IP = ipadd;
	 }
	 private static short counter = (short) 0;
	 private static final int JVM = (int) ( System.currentTimeMillis() >>> 8 );

	 public UUIDGenerator() {
	 }

	 /**
	  * Unique across JVMs on this machine (unless they load this class
	  * in the same quater second - very unlikely)
	  */
	 protected int getJVM() {
	  return JVM;
	 }

	 /**
	  * Unique in a millisecond for this JVM instance (unless there
	  * are > Short.MAX_VALUE instances created in a millisecond)
	  */
	 protected short getCount() {
	  synchronized(UUIDGenerator.class) {
	   if (counter<0) counter=0;
	   return counter++;
	  }
	 }

	 /**
	  * Unique in a local network
	  */
	 protected int getIP() {
	  return IP;
	 }

	 /**
	  * Unique down to millisecond
	  */
	 protected short getHiTime() {
	  return (short) ( System.currentTimeMillis() >>> 32 );
	 }
	 protected int getLoTime() {
	  return (int) System.currentTimeMillis();
	 }
	 
	 private final static String sep = "";

	 protected String format(int intval) {
	  String formatted = Integer.toHexString(intval);
	  StringBuffer buf = new StringBuffer("00000000");
	  buf.replace( 8-formatted.length(), 8, formatted );
	  return buf.toString();
	 }

	 protected String format(short shortval) {
	  String formatted = Integer.toHexString(shortval);
	  StringBuffer buf = new StringBuffer("0000");
	  buf.replace( 4-formatted.length(), 4, formatted );
	  return buf.toString();
	 }

	 public Serializable generate() {
	  return new StringBuffer(36)
	   .append( format( getIP() ) ).append(sep)
	   .append( format( getJVM() ) ).append(sep)
	   .append( format( getHiTime() ) ).append(sep)
	   .append( format( getLoTime() ) ).append(sep)
	   .append( format( getCount() ) )
	   .toString();
	 }
}



用法:  String abc = new UUIDGenerator().generate().toString();
1
0
分享到:
评论

相关推荐

    java 生成32位UUID

    这段代码会生成一个128位的UUID,然后通过正则表达式`replaceAll("-","")`移除所有短横线,得到32位的UUID字符串。 然而,32位的UUID实际上可能不满足全局唯一性的要求,因为128位UUID提供了足够的熵(随机性)来...

    UUIDGenerator.java

    UUIDGenerator (生成32位uuid串) 用法: String abc = new UUIDGenerator().generate().toString();

    自动生成主键uuid.zip

    在Java中,生成UUID主要通过`java.util.UUID`类提供的静态方法。`UUID.randomUUID()`是生成一个随机的UUID实例,它满足全局唯一性。然而,生成的UUID字符串通常是36个字符,包括16进制数字和短横线。为了得到32位的...

    java生成唯一id(uuid)(不依赖jdk5,自己实现的)

    时间戳是自特定时刻以来的毫秒数,节点ID用于标识生成UUID的设备,序列号用于在同一毫秒内生成多个UUID,变种和版本则提供了UUID的类型信息。 在Java中,我们可以通过以下步骤实现一个简单的UUID生成器: 1. **...

    Java UUID Generator-UUID 生成器 JUG 是一个纯 Java 的 UUID 生成器

    &lt;groupId&gt;com.fasterxml.uuid&lt;/groupId&gt; &lt;artifactId&gt;java-uuid-generator &lt;packaging&gt;bundle &lt;name&gt;Java UUID Generator &lt;version&gt;3.1.5&lt;/version&gt;

    UUIDGenerator:使用C ++ 11的简单UUID生成器

    该程序是使用C ++ 11的简单128位UUID生成器。 请注意,这不是符合RFC4122的UUID。 有关符合RFC4122的UUID的更多信息,请参考 。 如果您正在寻找兼容RFC4122的UUID,请尝试或从util-linux尝试 。 该UUID生成器的...

    java生成UUID通用唯一识别码.docx

    这个类提供了多种生成UUID的方法。例如,`UUID.randomUUID()`方法可以生成一个基于时间的UUID,这是最常见的类型,它结合了当前时间戳、随机数和机器标识,确保生成的ID在全球范围内是唯一的。 以下是一个简单的...

    JAVA UUID 生成.txt

    #### 二、Java 中 UUID 的生成 ##### JDK 1.5 版本 - **引入**: 自 Java 5 开始,Java 提供了 `java.util.UUID` 类来生成 UUID。 - **实例化**: ```java UUID uuid = UUID.randomUUID(); ``` ##### 实现代码...

    java生成UUID通用唯一识别码[参照].pdf

    这个示例代码使用 Java 的 UUID 类生成随机的 UUID,并将其转换为字符串格式。然后,使用 substring 方法将 UUID 字符串分割成五部分,并将其连接起来形成一个新的字符串。 UUID 的优点是可以让分布式系统中的所有...

    java uuid jug实例(采用开源jug)

    然后,可以使用JUG提供的`UUIDGenerator`类来生成UUID。例如,生成一个基于时间的UUID: ```java import com.github.stephenc.uuid.jugg.JUG; import com.github.stephenc.uuid.jugg.JUGConfig; JUG uuidGen = ...

    UUID生成器「UUID generator」-crx插件

    轻松生成UUID 生成随机UUID并单击复制它们! 新功能即将推出! 支持语言:English

    java-uuid-generator:Java Uuid Generator(JUG)是一个用于在Java上生成所有(3)类型的UUID的库。 请参阅(http

    JUG是一组用于处理UUID的Java类:使用任何标准方法生成UUID,有效输出,排序等。 它根据生成UUID(有关更多说明,另请参见) JUG由Tatu Saloranta( )最初于2002年编写,并且经过多年的更新。 此外,其他许多人也...

    uuidgenerator

    在JavaScript中,`uuidgenerator`可能是用于生成UUID的库或工具。这个库可以帮助开发者在JavaScript应用程序中生成具有唯一性的字符串,这对于数据库记录、临时ID、或者任何需要唯一标识符的场景都非常有用。 UUID...

    Laravel开发-uuid

    UUID是一个128位的数字,通常以36个字符的16进制字符串形式表示,如“123e4567-e89b-12d3-a456-426655440000”。由于其设计,UUID几乎可以确保全局唯一性,无需中央协调机构。 在Laravel项目中引入UUID,首先需要...

    UUID-generator:uuid生成工具

    ====================== 返回长度为 32 的字符串的 UUIDGenerator,该字符串仅包含十六进制数字。 可选地,可以在 UUID 的每个组件之间使用分隔符生成字符串。 如果你想像使用这个工具一样使用这个工具: ...

    数据库数据产生工具 DBMonster 应用详解

    例如,MersenneTwisterGenerator 和 UUIDGenerator 分别用于生成随机数和 UUID 字符串。用户可以根据需求自定义 Generator,以满足特定的数据生成规则。 DBMonster 提供了一些高级特性,如自定义事务大小、重试次数...

    uuidGenerator::key:这是UUID Generator的一个项目,我已经研究了NextJS和Tailwind CSS。 :grinning_face:

    :sparkles: UUID生成器 这是一个UUID生成器的项目,我已经研究了NextJS和Tailwind CSS。 :grinning_face: 该项目是由@ florinpop17创建的#30Days30Projects Challenge的一部分,该挑战包括:在30天内每天创建一个...

    mybatis-plus快速入门项目-mybatis-plus基本操作大全-附带sql+项目文档

    MyBatis-Plus支持多种主键生成策略,如ID_WORKER(雪花算法)、UUIDGenerator(UUID)等,可以根据业务需求选择合适的策略。 8. **分页插件(PageHelper)** 虽然MyBatis-Plus自身不包含分页功能,但可以配合...

    POCO 样例说明,PDF格式

    - **2.1.16 UUIDGenSample**:此示例程序展示了如何使用 `UUIDGenerator` 类生成全局唯一标识符 (UUID),这对于需要唯一标识的数据项非常有用。 ##### XML 样例 - **2.2.1 DOMParserSample**:此示例程序展示了...

Global site tag (gtag.js) - Google Analytics