Java Random、ThreadLocalRandom、UUID類中的方法應用(隨機數)


1.Random:產生一個偽隨機數(通過相同的種子,產生的隨機數是相同的);

Random r=new Random();
System.out.println(r.nextBoolean());
System.out.print(r.nextInt(50));//隨機生成0~50的隨機數,不包括50
System.out.println(r.nextInt(20)+30);//隨機生成30~50的隨機數,不包括50

2.ThreadLocalRandom:是JDK 7之后提供並發產生隨機數,能夠解決多個線程發生的競爭爭奪。ThreadLocalRandom不是直接用new實例化,而是第一次使用其靜態方法current()。
從Math.random()改變到ThreadLocalRandom有如下好處:
我們不再有從多個線程訪問同一個隨機數生成器實例的爭奪。
取代以前每個隨機變量實例化一個隨機數生成器實例,我們可以每個線程實例化一個。

ThreadLocalRandom t=ThreadLocalRandom.current();
System.out.println(t.nextInt(50));//隨機生成0~50的隨機數,不包括50
System.out.println(t.nextInt(30, 50));//隨機生成30~50的隨機數,不包括50

 

3.UUID:  UUID含義是通用唯一識別碼 (Universally Unique Identifier),這 是一個軟件建構的標准,也是被開源軟件基金會 (Open Software Foundation, OSF) 的組織在分布式計算環境 (Distributed Computing Environment, DCE) 領域的一部份。UUID 的目的,是讓分布式系統中的所有元素,都能有唯一的辨識資訊,而不需要透過中央控制端來做辨識資訊的指定。如此一來,每個人都可以建立不與其它人沖突的 UUID。在這樣的情況下,就不需考慮數據庫建立時的名稱重復問題。目前最廣泛應用的 UUID,即是微軟的 Microsoft's Globally Unique Identifiers (GUIDs),而其他重要的應用,則有 Linux ext2/ext3 檔案系統、LUKS 加密分割區、GNOME、KDE、Mac OS X 等等。

String u=UUID.randomUUID().toString();
System.out.println(u);

 

 生成5個字符的驗證碼:

        String content="ABCDEFGHIJKLMNOPQRSTUVWHYZ";//創建23個大寫字母的字符串
        content+=content.toLowerCase();//把大寫字母轉換成小寫字母,相連接
        content+="0123456789";//連接0~9的數字。
        Random r=new Random();//創建一個隨機數對象
        StringBuilder b=new StringBuilder(5);//創建空間大小為5的StringBuilder對象
        for (int i = 0; i <5; i++) {
            char n=content.charAt(r.nextInt(content.length()));//截取一個從0到content.length()之間的字符,循環輸出5個不同的字符,追加到一起
            b.append(n);
        }
        System.out.println(b.toString());//轉成字符串輸出5個字符

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM