最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java隨機數(shù)的5種獲得方法(非常詳細!)

 更新時間:2023年10月26日 10:30:22   作者:諾蓮爸爸  
這篇文章主要給大家介紹了關(guān)于Java隨機數(shù)的5種獲得方法,在實際開發(fā)中產(chǎn)生隨機數(shù)的使用是很普遍的,所以在程序中進行產(chǎn)生隨機數(shù)操作很重要,文中通過圖文介紹的非常詳細,需要的朋友可以參考下

1. Math.random() 靜態(tài)方法

產(chǎn)生的隨機數(shù)是 0 - 1 之間的一個 double,即 0 <= random < 1

代碼:

結(jié)果:

當調(diào)用 Math.random() 方法時,自動創(chuàng)建了一個偽隨機數(shù)生成器,實際上用的是 new java.util.Random()。當接下來繼續(xù)調(diào)用 Math.random() 方法時,就會使用這個新的偽隨機數(shù)生成器。

2. java.util.Random 工具類

基本算法:

linear congruential pseudorandom number generator (LGC) 線性同余法偽隨機數(shù)生成器

缺點:可預測

Random類默認使用當前系統(tǒng)時鐘作為種子:

Random類提供的方法:API

  • nextBoolean() - 返回均勻分布的 true 或者 false
  • nextBytes(byte[] bytes)
  • nextDouble() - 返回 0.0 到 1.0 之間的均勻分布的 double
  • nextFloat() - 返回 0.0 到 1.0 之間的均勻分布的 float
  • nextGaussian()- 返回 0.0 到 1.0 之間的高斯分布(即正態(tài)分布)的 double
  • nextInt() - 返回均勻分布的 int
  • nextInt(int n) - 返回 0 到 n 之間的均勻分布的 int (包括 0,不包括 n)
  • nextLong() - 返回均勻分布的 long
  • setSeed(long seed) - 設(shè)置種子

只要種子一樣,產(chǎn)生的隨機數(shù)也一樣: 因為種子確定,隨機數(shù)算法也確定,因此輸出是確定的!

3. java.util.concurrent.ThreadLocalRandom 工具類

ThreadLocalRandom 是 JDK 7 之后提供,也是繼承至 java.util.Random。每一個線程有一個獨立的隨機數(shù)生成器,用于并發(fā)產(chǎn)生隨機數(shù),能夠解決多個線程發(fā)生的競爭爭奪。效率更高!

ThreadLocalRandom 不是直接用 new 實例化,而是第一次使用其靜態(tài)方法 current() 得到 ThreadLocal<ThreadLocalRandom> 實例,然后調(diào)用 java.util.Random 類提供的方法獲得各種隨機數(shù)。

4. java.Security.SecureRandom

也是繼承至 java.util.Random。

SecureRandom 提供加密的強隨機數(shù)生成器 (RNG),要求種子必須是不可預知的,產(chǎn)生非確定性輸出。SecureRandom 也提供了與實現(xiàn)無關(guān)的算法,因此,調(diào)用方(應用程序代碼)會請求特定的 RNG 算法并將它傳回到該算法的 SecureRandom 對象中。

  1. 如果僅指定算法名稱,如下所示:SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
  2. 如果既指定了算法名稱又指定了包提供程序,如下所示:SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN");

5. 隨機字符串

RandomStringUtils 類的實現(xiàn)上也是依賴了 java.util.Random 工具類:

總結(jié)

到此這篇關(guān)于Java隨機數(shù)的5種獲得方法的文章就介紹到這了,更多相關(guān)Java生成隨機數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • tomcat301與java301解析

    tomcat301與java301解析

    這篇文章主要介紹了omcat301與java301,有需要的朋友可以參考一下
    2014-01-01
  • 解決項目沒有build path的問題

    解決項目沒有build path的問題

    這篇文章主要介紹了解決項目沒有build path的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • JavaWeb框架MVC設(shè)計思想詳解

    JavaWeb框架MVC設(shè)計思想詳解

    這篇文章主要介紹了JavaWeb框架MVC設(shè)計思想詳解的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • SpringBoot中的文件下載功能實現(xiàn)教程

    SpringBoot中的文件下載功能實現(xiàn)教程

    SpringBoot文件下載分兩種方式:直接流式下載(實時生成內(nèi)容,適合小文件)與靜態(tài)資源映射(預先存儲文件,適合大文件),實現(xiàn)涉及控制器調(diào)用及分頁數(shù)據(jù)處理流程
    2025-09-09
  • Java通過Freemarker模板實現(xiàn)生成Word文件

    Java通過Freemarker模板實現(xiàn)生成Word文件

    FreeMarker是一款模板引擎: 即一種基于模板和要改變的數(shù)據(jù), 并用來生成輸出文本的通用工具。本文將根據(jù)Freemarker模板實現(xiàn)生成Word文件,需要的可以參考一下
    2022-09-09
  • sqlserver和java將resultSet中的記錄轉(zhuǎn)換為學生對象

    sqlserver和java將resultSet中的記錄轉(zhuǎn)換為學生對象

    這篇文章主要介紹了如何利用sqlserver和java將resultSet中的記錄轉(zhuǎn)換為學生對象,附有超詳細的代碼,需要的朋友可以參考一下,希望對你有所幫助
    2021-12-12
  • Spring?Boot整合Kafka教程詳解

    Spring?Boot整合Kafka教程詳解

    這篇文章主要為大家介紹了Spring?Boot整合Kafka教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • SpringBoot集成Hutool防止XSS攻擊的兩種解決方法

    SpringBoot集成Hutool防止XSS攻擊的兩種解決方法

    XSS漏洞是生產(chǎn)上比較常見的問題,本文主要介紹了SpringBoot集成Hutool防止XSS攻擊的兩種解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-04-04
  • 分布式難題ElasticSearch解決大數(shù)據(jù)量檢索面試

    分布式難題ElasticSearch解決大數(shù)據(jù)量檢索面試

    這篇文章主要為大家介紹了分布式面試難題,ElasticSearch解決大數(shù)據(jù)量檢索的問題分析回答,讓面試官無話可說,幫助大家實現(xiàn)面試開薪自由
    2022-03-03
  • 當mybatis返回值遇見內(nèi)部類的問題

    當mybatis返回值遇見內(nèi)部類的問題

    這篇文章主要介紹了當mybatis返回值遇見內(nèi)部類的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評論

平果县| 禹城市| 尼木县| 大连市| 麦盖提县| 黄大仙区| 宁强县| 连城县| 唐山市| 腾冲县| 方正县| 花莲市| 班玛县| 柳河县| 洪湖市| 道真| 酒泉市| 兰溪市| 莱西市| 城步| 榕江县| 资中县| 康平县| 墨竹工卡县| 方城县| 临洮县| 石狮市| 嘉义县| 新建县| 古浪县| 昆山市| 阿勒泰市| 兴宁市| 许昌市| 宜川县| 沭阳县| 澳门| 惠安县| 正安县| 昌平区| 永年县|