UUID生成器
来源:互联网 发布:软件测试用例实例 编辑:程序博客网 时间:2024/05/23 15:06
UUIDHexGeneral.java
package com.lmb.util;/*** UUID.HEX十六进制生成器:IP地址+JVM+当地时间+计数器*/import java.net.InetAddress;public class UUIDHexGenerator { private String sep = ""; private static final int IP; private static short counter = (short) 0; private static final int JVM = (int)(System.currentTimeMillis() >>> 8); private static UUIDHexGenerator uuidgen = new UUIDHexGenerator(); //获得本机的IP地址 static { int ipadd; try { ipadd = toInt(InetAddress.getLocalHost().getAddress()); } catch (Exception e) { ipadd = 0; } IP = ipadd; } //获取UUIDHexGenerator实例对象 public static UUIDHexGenerator getInstance() { return uuidgen; } //将byte类型变量转化为Int类型 public static int toInt(byte[] bytes) { int result = 0; for (int i = 0; i < 4; i++) { result = (result << 8) - Byte.MIN_VALUE + (int) bytes[i]; } return result; } //将int类型变量转化为string类型 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(); } //将byte类型变量转化为string类型 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(); } protected int getJVM() { return JVM; } protected synchronized short getCount() { if (counter < 0) { counter = 0; } return counter++; } protected int getIP() { return IP; } protected short getHiTime() { return (short) (System.currentTimeMillis() >>> 32); } protected int getLoTime() { return (int) System.currentTimeMillis(); } public String 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(); } public static void main(String[] str) { UUIDHexGenerator id = new UUIDHexGenerator(); for (int i = 0; i <= 10; i++) { System.out.println(id.generate()); } System.out.println(id.generate().length()); }}
1 0
- UUID生成器
- uuid生成器
- uuid.hex主键生成器
- Android UUID主键生成器
- JavaScript的UUID生成器
- UUID唯一标识生成器
- uuid.hex主键生成器
- IdWorker-UUID生成器
- Base64压缩UUID长度替换Hibernate原有UUID生成器
- Base64压缩UUID长度替换Hibernate原有UUID生成器
- java代码生成UUID以及在线UUID生成器
- Online GUID Generator -在线GUID/UUID生成器
- go 实现一个简单的UUID生成器
- 7.11 Hibernate:内置生成器 – uuid
- hibernate的uuid主键生成器(使用注解)
- UUID
- UUID
- UUID
- vi/vim编辑器必知必会
- leetcode-58. Length of Last Word
- 自定义控件三部曲之绘图篇(十)——Paint之setXfermode(一)
- Python分析网页神器pyquery
- 第五章 Python数据结构
- UUID生成器
- JavaScript与HTML_DOM
- leetcode-203. Remove Linked List Elements
- 数据挖掘-数据探索
- 最短排序
- 支持向量机(SVM)
- Android---启动第三方应用
- Android 开发值得订阅的日报和周刊
- 初学android开发--动画效果实现