import java.util.UUID;
public class UuidUtil {
public static String get32Uuid(){
return UUID.randomUUID().toString().replace(“-”,“”);
}
/**
* 有序的uuid
*
*/
public static String getSort32Uuid(){
return SequentialUuidHexGenerator.generate().replace(“-”,“”);
}
public static void main(String[] args) {
System.out.println(get32Uuid());
System.out.println(get32Uuid());
System.out.println("========");
System.out.println(getSort32Uuid());
System.out.println(getSort32Uuid());
System.out.println(getSort32Uuid());
}
}
/**
-
@author 12439
*/
public class SequentialUuidHexGenerator extends AbstractUUIDGenerator {private static final String SEP=“-”;
public static String format(int intValue){
String formatted = Integer.toHexString(intValue);
StringBuffer buf=new StringBuffer(“00000000”);
buf.replace(8-formatted.length(),8,formatted);
return buf.toString();
}public static String format(short shortValue){
String formatted = Integer.toHexString(shortValue);
StringBuffer buf=new StringBuffer(“0000”);
buf.replace(4-formatted.length(),4,formatted);
return buf.toString();
}public static String generate(){
String uuid=format(getJVM())+SEP
+format(getHiTime())+SEP
+format(getLoTime())+SEP
+format(getCount());
return uuid;
}
}
import org.hibernate.internal.util.BytesHelper;
import java.net.InetAddress;
/**
-
@author 12439
*/
public abstract class AbstractUUIDGenerator {
private static final int IP ;private static short counter=0;
private static final int JVM=(int)(System.currentTimeMillis()>>>8);
static {
//获取ip
int ipadd;
try{
/**
*BytesHelper 可以自己复写一份BytesHelper.Java
* ipadd=BytesHelpers.toInt(InetAddress.getLocalHost().getAddress());
*/
ipadd=BytesHelper.toInt(InetAddress.getLocalHost().getAddress());
} catch (Exception e) {
ipadd=0;
}
IP=ipadd;
}public AbstractUUIDGenerator(){
}protected static int getJVM(){
return JVM;
}protected static short getCount(){
synchronized (AbstractUUIDGenerator.class){
if (counter<0){
counter=0;
}
return counter++;
}
}protected static int getIp(){
return IP;
}protected static short getHiTime(){
return (short) (System.currentTimeMillis()>>>32);
}protected static int getLoTime(){
return (int) System.currentTimeMillis();
}
}