a级毛片免费全部播放-a级毛片免费观看在线播放-a级毛片免费观看网站-a级毛片免费看-国产成人精品在视频-国产成人精品在线

歡迎來到培訓無憂網!

全國切換

咨詢熱線 400-001-5729

位置:培訓無憂網 > 新聞資訊 > 電腦/IT > java培訓 >  Java如何生成隨機數?

Java如何生成隨機數?

來源:培訓無憂網-云朵 發布人:云朵

2021-12-01 15:41:55|已瀏覽:276次

Java如何生成隨機數?

    在 Java 中,生成隨機數的場景有很多,所以本文我們就來盤點一下 4 種生成隨機數的方式,以及它們之間的區別和每種生成方式所對應的場景。

1、Random

    Random 類誕生于 JDK 1.0,它產生的隨機數是偽隨機數,也就是有規則的隨機數。Random 使用的隨機算法為 linear congruential pseudorandom number generator (LGC) 線性同余法偽隨機數。在隨機數生成時,隨機算法的起源數字稱為種子數(seed),在種子數的基礎上進行一定的變換,從而產生需要的隨機數字。

    Random 對象在種子數相同的情況下,相同次數生成的隨機數是相同的。比如兩個種子數相同的 Random 對象,第一次生成的隨機數字完全相同,第二次生成的隨機數字也完全相同。默認情況下 new Random() 使用的是當前納秒時間作為種子數的。

2、ThreadLocalRandom

    ThreadLocalRandom 是 JDK 1.7 新提供的類,它屬于 JUC(java.util.concurrent)下的一員,為什么有了 Random 之后還會再創建一個 ThreadLocalRandom?

    原因很簡單,通過上面 Random 的源碼我們可以看出,Random 在生成隨機數時使用的 CAS 來解決線程安全問題的,然而 CAS 在線程競爭比較激烈的場景中效率是非常低的,原因是 CAS 對比時老有其他的線程在修改原來的值,所以導致 CAS 對比失敗,所以它要一直循環來嘗試進行 CAS 操作。所以在多線程競爭比較激烈的場景可以使用 ThreadLocalRandom 來解決 Random 執行效率比較低的問題。

    當我們第一眼看到 ThreadLocalRandom 的時候,一定會聯想到一次類 ThreadLocal,確實如此。ThreadLocalRandom 的實現原理與 ThreadLocal 類似,它相當于給每個線程一個自己的本地種子,從而就可以避免因多個線程競爭一個種子,而帶來的額外性能開銷了。

3、SecureRandom

    SecureRandom 繼承自 Random,該類提供加密強隨機數生成器。SecureRandom 不同于 Random,它收集了一些隨機事件,比如鼠標點擊,鍵盤點擊等,SecureRandom 使用這些隨機事件作為種子。這意味著,種子是不可預測的,而不像 Random 默認使用系統當前時間的毫秒數作為種子,從而避免了生成相同隨機數的可能性。

4、Math

    Math 類誕生于 JDK 1.0,它里面包含了用于執行基本數學運算的屬性和方法,如初等指數、對數、平方根和三角函數,當然它里面也包含了生成隨機數的靜態方法 Math.random() ,此方法會產生一個 0 到 1 的 double 值。
    其中 Math 是對 Random 的封裝,所以二者比較類似。Random 生成的是偽隨機數,是以當前納秒時間作為種子數的,并且在多線程競爭比較激烈的情況下因為要進行 CAS 操作,所以存在一定的性能問題,但對于絕大數應用場景來說,使用 Random 已經足夠了。當在競爭比較激烈的場景下可以使用 ThreadLocalRandom 來替代 Random,但如果對安全性要求比較高的情況下,可以使用 SecureRandom 來生成隨機數,因為 SecureRandom 會收集一些隨機事件來作為隨機種子,所以 SecureRandom 可以看作是生成真正隨機數的一個工具類。

    本文由培訓無憂網長沙牛耳教育專屬課程顧問整理發布,希望能夠對想參加長沙Java培訓班的學生有所幫助。更多Java培訓課程資訊歡迎關注培訓無憂網Java培訓頻道或添加老師微信:1503333605010

      注:尊重原創文章,轉載請注明出處和鏈接 http://www.dedgn.cn/news-id-5808.html 違者必究!部分文章來源于網絡由培訓無憂網編輯部人員整理發布,內容真實性請自行核實或聯系我們,了解更多相關資訊請關注java培訓頻道查看更多,了解相關專業課程信息您可在線咨詢也可免費申請試課。關注官方微信了解更多:150 3333 6050

留下你的信息,課程顧問老師會一對一幫助你規劃更適合你的專業課程!
  • 姓名:

  • 手機:

  • 地區:

  • 想學什么:

  • 培訓無憂網
免 費 申 請 試 聽
提交申請,《培訓無憂網》課程顧問老師會一對一幫助你規劃更適合你的專業課程!

主站蜘蛛池模板: 亚洲欧美日韩高清综合678 | 成人午夜私人影院入口 | 久久免费视频在线观看 | 久久怡红院国产精品 | 国产成人综合久久精品亚洲 | 成人精品一区二区不卡视频 | 久久精品视频99精品视频150 | 国产做a爰片久久毛片 | 久久精品免费一区二区三区 | 亚洲va老文色欧美黄大片人人 | 欧美国产在线视频 | 亚洲免费美女视频 | 日韩一区二区在线观看 | 日韩欧美三级在线观看 | 99re6这里有精品热视频在线 | 亚洲国产成人影院播放 | 狠狠综合久久久久综合 | 91最新地址永久入口 | 欧洲一级毛片免费 | 精品国产区一区二区三区在线观看 | 欧美一级视屏 | 中国国产一国产一级毛片视频 | 亚洲国产精品一区二区九九 | 国产理论视频 | 91精品国产乱码久久久久久 | 国产精品亚洲二线在线播放 | 久久精品网站免费观看调教 | 久草视频官网 | 手机看片福利永久 | 亚洲欧美日韩精品久久亚洲区 | 亚洲成人一级 | 成人18视频在线观看 | 亚洲一级毛片免费在线观看 | 日本暖暖视频在线播放 | 高清色黄毛片一级毛片 | 老司机午夜在线视频免费观 | 国产系列 视频二区 | 一级做a级爰片性色毛片视频 | 亚洲欧美一区二区三区四区 | 免费毛片a线观看 | 欧美大片在线观看成人 |