1. 程式人生 > >java生成唯一數字

java生成唯一數字

用UUID類生成唯一標識的時候,會生成一個十六進位制的整數,但是不能作為資料庫long型欄位的唯一標識,用下面的辦法可以實現資料庫long型標識的生成:
public class ProfileUtil {

    private static AtomicInteger counter = new AtomicInteger(0);

    /**
     * 長生訊息id
     */
    public static long getAtomicCounter() {
        if (counter.get() > 999999) {
            counter.set(1);
        }
        long time = System.currentTimeMillis();
        long returnValue = time * 100 + counter.incrementAndGet();
        return returnValue;
    }

    private static long incrementAndGet() {
        return counter.incrementAndGet();
    }

    public static void main(String[] args) {
        
        System.out.println(ProfileUtil.getAtomicCounter());
    }
    
    
}
但是請注意,如果將系統部署到叢集上面,情況有會有不同了,不同的伺服器叢集生成的這個數字,是有重合的概率的,因此,一般情況是,將叢集中的每個機器進行編碼,然後將機器編碼放在這個標識的前面以示區分。

相關推薦

java生成唯一數字

用UUID類生成唯一標識的時候,會生成一個十六進位制的整數,但是不能作為資料庫long型欄位的唯一標識,用下面的辦法可以實現資料庫long型標識的生成:public class ProfileUtil {    private static AtomicInteger counter = new Atomic

Java生成唯一ID

out ret sys .get test print replace int bdd 這裏我用的是Java提供的java.util.UUID類來產生隨機字串,UUID碼是什麽我就不再贅述,能滿足我們的需求就可以。 下面是java代碼: 1 import java.ut

JAVA生成字元數字交替的隨機密碼

package com.oovever.util; import java.util.Date; import java.util.Random; /** * PassWord工具類 * @auth

java生成隨機數字和字母組合

public static String getCharAndNumr(int length) {     String val = "";     Random random = new Random();     for (int i = 0; i < length

JAVA代碼-數字證書公私鑰生成-公鑰cer ,私鑰jks, pfx格式

else generator actor issue 自己 bytearray 私鑰 公私鑰 throws import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStre

java web系統在高併發下如何實現訂單號生成唯一

java web系統在高併發下如何實現訂單號生成唯一? 系統訂單號規則:XXXX(固定字元)+年(後兩位)月日+流水號。流水號每天重新從1開始。 系統訂單號產生唯一的方案有哪幾種?由於訂單號規則已經確定,無法使用時間戳及隨機數,有哪些方案可以使用? 注:資料庫mysql,訂單號不是訂單表的主鍵

Java生成一定長度隨機數字字母字串,區分大小寫

在專案中遇到生成隨機字串的一個需求,自己通過實踐等總結出一個比較不錯的方法,需要的位數越高,重讀率越低。 /** * * @param length 需要的字元長度 * @return 返回隨機字母數字組合字串 */ public static S

java 叢集伺服器生成唯一id

思路: 1.獲取當前伺服器唯一id 2.獲取當前時間戳 3.獲取當前uuid 目的: 可以避免多臺同型號伺服器跑大資料的時候發生相同id的問題 package com.uitl; import java.util.UUID; /** * 生成檔案叢集伺服器唯一id

java生成UUID通用唯一識別碼 (Universally Unique Identifier)

UUID含義是通用唯一識別碼 (Universally Unique Identifier),這 是一個軟體建構的標準,也是被開源軟體基金會 (Open Software Foundation, OSF) 的組織在分散式計算環境 (Distributed Computing

【知識積累】Java中的UUID類(生成唯一ID)

1.UUID 簡介      UUID含義是通用唯一識別碼 (Universally Unique Identifier),這是一個軟體建構的標準,也是被開源軟體基金會 (Open Software Foundation, OSF) 的組織應用在分散式計算環

java生成4位不重複字元(包含大寫字母、小寫字母、數字)

需要生成4位不重複的字元作為唯一引數,要求只能使用大寫字母、小寫字母和數字的組合。大寫字母26個、小寫字母26個、10個數字共62個字元。不重複排列個數:62*62*62*62=14776336個。 /** * * @author wzp * 2016-3-18

Android 用Java程式碼編寫一款動態生成幸運數字的小遊戲

  截圖: 程式碼如下:   第三方依賴庫地址:https://github.com/AndroidMsky/RandomTextView 第一步:新增倉庫 allprojects { repositories { ... maven {

java生成指定的隨機數並且包含大寫、小寫和數字,滿足以上條件的返回字串

以下的類完成的是產生隨機數,並且在指定的長度裡包括大寫字母、小寫字母、數字,滿足條件的則將輸出該隨機數。 public class RandomClass { /**** 產生隨機數的方法* @param length* @return*/public static Str

JAVA 時間戳+隨機數生成唯一ID

/** * @Title: IDUtils.java * @Package com.createid * @Description: TODO(用一句話描述該檔案做什麼) * @a

java生成任意隨機值,字元,數字,其它的都有你來

主角:Math.random() Math.random()是令系統隨機選取大於等於 0.0 且小於 1.0 的偽隨機 double 值,是Java、js等語言常用程式碼。 我要說的是用java語言,實現任意隨機資料 首先我們知道Math.random(

java生成16位唯一值做主鍵

僅限一臺伺服器關於多個表主鍵的生成,在不建議擴充套件主鍵長度的前提下,通過對時間戳加鎖來解決主鍵重複問題import org.apache.commons.lang.StringUtils; import com.fto.sql.UniqueTimestamp; publ

JAVA UUID 生成唯一標識

Writer:BYSocket(泥沙磚瓦漿木匠) Reprint it anywhere u want 需求     專案在設計表的時候,要處理併發多的一些資料,類似訂單號不能重複,要保持唯一

Java生成隨機字串,必須包含數字、小寫字母、大寫字母

轉載,來源:http://www.cnblogs.com/dongliyang/archive/2013/04/01/2994554.html 一道演算法題,生成隨機字串,必須包含數字、小寫字母、大寫字母。 為了生成隨機數方便,特別編寫StdRandom類(注1),AP

Java中的UUID類(生成唯一ID)

GUID是一個128位長的數字,一般用16進製表示。演算法的核心思想是結合機器的網絡卡、當地時間、一個隨即數來生成GUID。從理論上講,如果一臺機器每秒產生10000000個GUID,則可以保證(概率意義上)3240年不重複。 UUID是1.5中新增的一個類,在java.

Java生成包含大寫字母,小寫字母以及數字的無重複隨機密碼

程式碼如下: import java.util.Random; public final class PasswordUtils { private static Random random; private static long se