自動生成全域性連續id的工具類
import java.util.HashSet; import java.util.Random; import java.util.ResourceBundle; import java.util.UUID; /** * *類名稱:各種id生成策略 *類描述: * *編 寫 人:kxw *編寫日期:2016-8-29 * *修改人: *修改日期: *修改內容: * *版本:1.0 */ public class IDUtils { private static int id=0; private static long time; private static String hostCode;//主機編號 static{ //讀取配置檔案 ResourceBundle conf = ResourceBundle.getBundle("host"); hostCode=conf.getString("hostCode"); } /** * 圖片名生成 */ public static String genImageName() { //取當前時間的長整形值包含毫秒 long millis = System.currentTimeMillis(); //long millis = System.nanoTime(); //加上三位隨機數 Random random = new Random(); int end3 = random.nextInt(999); //如果不足三位前面補0 String str = millis + String.format("%03d", end3); return str; } /** * id生成 */ public static long getId() { //取當前時間的長整形值包含毫秒 long millis = System.currentTimeMillis(); //long millis = System.nanoTime(); //加上兩位隨機數 long end3 = getRand(millis); //如果不足兩位前面補0 // String str = millis + String.format("%03d", end3); // long id = new Long(str); return end3; } private synchronized static long getRand(long l){ if(l>time){ time=l; id=0; }else{ id++; } if(id>99){ id=0; time=time+1; } String str = time+hostCode + String.format("%02d", id); long ids = new Long(str); //System.out.println(ids); return ids; } public static void main(String[] args) { int m=0; System.out.println(System.currentTimeMillis()); HashSet hashSet = new HashSet(); for(int i=0;i<99999;i++){ // // if(getId()==getId()){ // m++; // System.out.println("重複了"+m+"ci"); // } hashSet.add(getId()); } System.out.println(hashSet.size()); System.out.println(getId()); System.out.println(System.currentTimeMillis()); System.out.println(UUID.randomUUID().toString()); if(UUID.randomUUID().toString().equals(UUID.randomUUID().toString())){ m++; System.out.println("重複了"+m+"ci"); } } }
相關推薦
自動生成全域性連續id的工具類
import java.util.HashSet; import java.util.Random; import java.util.ResourceBundle; import java.util.UUID; /** * *類名稱:各種id生成策略 *類
ibator 工具補充類,自動生成Manager介面,ManagerImpl類
經常用ibator工具生成VO和DAO,但是有個麻煩的就是沒有manager類,昨天有空手工寫了一個根據DAO和DAOImp生成Manager和ManagerImpl的工具,工具還可以把通過資料庫生成的xml檔案裡的DATE型
雪花演算法生成長整型ID工具類SnowflakeUtil
JS語言不支援15位以上的長整型,該工具使用與否要有取捨。 public class SnowflakeUtil { /** 開始時間截 (2015-01-01) */ private final static long TWEPOCH = 1420041600000L;
生成32位字串ID工具類UUIDUtil
public class UUIDUtils { public static String getUUID() { String s = UUID.randomUUID().toString(); return s.substring(0, 8) + s.substring(9, 1
比UUID效率更高的生成id工具類
package com.test.util; import java.lang.management.ManagementFactory; import java.net.InetAddress; import java.net.NetworkInterface; /**
生成隨機ID工具類
import java.util.Random; /** * 各種id生成策略 */ public class IDUtils {/*** 圖片名生成*/public static String genImageName() {//取當前時間的長整形值包含毫秒long
生成訂單編號的工具類
println syn private span java log out tor edate package com.qiyuan.util; import java.text.SimpleDateFormat; import java.util.Date; pub
IDEA自動生成序列化ID
img setting 技術 all ide test IT inf PE File -> Settings -> Editor -> Inspections -> 搜索 Serialization issues ,找到 Serializable c
點選生成動態驗證碼(工具類)
1.頁面 <!--驗證碼--> <div class="col-sm-3"> <img id="vcode" src="/checkCode" style="cursor:pointer"> </div>
利用mybatis-generator自動生成程式碼-表對應的類和配置檔案
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configu
生成count位隨機數工具類
工具類 import java.util.Random; /** * 生成6位隨機數字 */ public class GeneratorCode { /** * * @Title: getCode * @Description: 生成count個隨機數 * @par
go分散式生成全域性唯一ID
因為snowFlake目的是解決分散式下生成唯一id 所以ID中是包含叢集和節點編號在內的 const ( numberBits uint8 = 12 // 表示每個叢集下的每個節點,1毫秒內可生成的id序號的二進位制位 對應上圖中的最後一段 workerBits uint8 = 10
Java隨機生成圖片驗證碼工具類/** * ttf字型檔案 * @author dsna * */ public class ImgFontByte { public Font g
/** * ttf字型檔案 * @author dsna * */ public class ImgFontByte { public Font getFont(int fontHeight){ try { Font baseFont = Font.createFo
Java 隨機生成手機驗證碼工具類
package cn.it.feizi.until; import java.util.HashSet; import java.util.Iterator; import java.util.Random; import java.util.Set; public class PhoneCod
使用zxing生成二維碼工具類
public class QRCodeUtils { /** * 建立二維碼(有白邊) * * @param string * @return */ public static Bitmap c
Spring Boot教你一種方法生成全域性唯一ID
一、概述 流水號生成器(全域性唯一 ID生成器)是服務化系統的基礎設施,其在保障系統的正確執行和高可用方面發揮著重要作用。而關於流水號生成演算法首屈一指的當屬 Snowflake雪花演算法,然而 Snowflake本身很難在現實專案中直接使用,因此實際應用時需要一種可落地的方案。 UidGe
如何在高併發分散式系統中生成全域性唯一Id
又一個多月沒冒泡了,其實最近學了些東西,但是沒有安排時間整理成博文,後續再奉上。最近還寫了一個發郵件的元件以及效能測試請看 《NET開發郵件傳送功能的全面教程(含郵件元件原始碼)》 ,還弄了個MSSQL引數化語法生成器,會在9月整理出來,有興趣的園友可以關注下我的部落格。 分享原由,最近公司用到,並
mybatis自動生成對應表的實體類、介面和對映檔案
使用maven構建的專案,其中整合了mybatis,每次使用時都需要建立model實體類,dao介面和mapper對映檔案,為了方便開發,maven中有一種外掛可以直接生成資料庫表對應的實體類,介面和對映檔案 1.首先要在pom.xml檔案中加入外掛依賴,注意直接放在<
SSM利用mybatis-generator自動生成程式碼-表對應的類和配置檔案
生成程式碼需要的檔案和jar包: 下載地址:http://download.csdn.net/detail/windflybird/9822991 <?xml version=
java生成二維碼工具類,親測有效,轉載請標明出處,謝謝!
自動創建 oat for pub 輸出 工具類 port 需要 ase 工具類使用需要在項目中引入二維碼處理所需要的jar包 1.pom.xml首先加入 <!-- https://mvnrepository.com/artifact/com.google.zxing/