zoukankan      html  css  js  c++  java
  • 关于Java的UUID

    UUID或者UNID或者UID,是一个统一唯一标识,可以用来标记文档、数据或其它需要唯一标识的东西。Java 5.0内置UUID的实现,见java.util.UUID. 下面代码是找到的2种实现方式,随手测了一下,两者时间效率居然出奇的相似,在10000000次循环中,均在660秒左右。

    Java代码  收藏代码
    1. import java.math.BigInteger;  
    2. import java.util.Random;  
    3. import java.util.UUID;  
    4.   
    5. public class UUIDTest {  
    6.     private static UUID uid = null;  
    7.     private static final Random RANDOM = new Random();  
    8.       
    9.     public static String getUUID() {  
    10.         uid = UUID.randomUUID();   
    11.         String idstr = uid.toString().replace("-", "");  
    12.         return idstr.toUpperCase();  
    13.     }  
    14.       
    15.       
    16.     public static String generateGUID(){  
    17.         return new BigInteger(165, RANDOM).toString(36).toUpperCase();  
    18.     }  
    19.       
    20.     /** 
    21.      * @param args 
    22.      */  
    23.     public static void main(String[] args) {  
    24.         int cycles = 100000000;   
    25.           
    26.         long start = System.currentTimeMillis();  
    27.         for (int i = 0; i < cycles; i++) {  
    28.             //System.out.println(getUUID());  
    29.             getUUID();  
    30.         }  
    31.         long end = System.currentTimeMillis();  
    32.         String msg = "Time(ms) of getUUID() " + cycles + " times: " ;  
    33.         System.out.println (msg + (end - start));  
    34.           
    35.           
    36.         long start1 = System.currentTimeMillis();  
    37.         for (int i = 0; i < cycles; i++) {  
    38.             //System.out.println(generateGUID());  
    39.             generateGUID();  
    40.         }  
    41.         long end1 = System.currentTimeMillis();  
    42.         msg = "Time(ms) of generateGUID() " + cycles + " times: " ;  
    43.         System.out.println (msg + (end1 - start1));  
    44.     }  
    45. }  



    2者所生成ID字串如下:

    引用
    FB0F88715B564691A85F28DBFDD57D90
    E50999DA27624D7E81B89C47DF02DA92
    E601B3C99AC4490E97EA0174860EEFDF
    839DF94E497E45D09D5D7F34C531511F
    54459B4DACF94097962A1C6017A35882
    6A6CAF5667F74C24A28141CD287C44BE
    7DF3E7F386934C4E9842E980E9E4C652
    3370A0549E3C4C5EA3A5EFC53E5DC9B6
    563F56BA980F43D3A07DF58B9F95F2EC
    0968563C99E046B9944DFDD36CDDF5E2
    GV9VQMTJC4NDFV5IB7N5IDWABQWF8M4M
    LD0U9UKFPGG9LKKYHEWJSJ40OC57JHIQ
    J9KTPM0Y9676256UNQTO7HFQG0G0CBDK
    H0B4IVYNO99N918YIJ12PKA4T0R6P394
    CTYE9DTF9IBUXXOR1SYCJYCRXD9H6KO9
    2ZQ1CH3MGP5M3AOTFH1VJ3ZQ8M0CH2I5
    MDGHQLHQ34A0Q9JNJ7S6WFAN8YV0M652
    HVC2R84PT2ZKABL2FSSR84K9N5IG98WP
    MGZ3NZJ5RS51KCL12KHLGURXCHZK8YNK
    129RZPH0UPQO8SMCZZJFTY37G47T19KL



    时间测试结果:

    引用
    Time(ms) of getUUID() 100000000 times: 669516
    Time(ms) of generateGUID() 100000000 times: 663656
     
  • 相关阅读:
    轻量级通用上采样算子-CARAFE
    图像分割-Mask Scoring R-CNN
    对C#Chart控件使用整理
    C#中的三种timer
    C#的三大难点
    将Excel的数据导入DataGridView中(转)
    状态者设计模式
    C# 中 DataTable 使用详解。
    Excel连接字符串在.NET中的应用
    状态机设计思想
  • 原文地址:https://www.cnblogs.com/exmyth/p/13595051.html
Copyright © 2011-2022 走看看