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

Java Random.nextInt()方法原理解析

 更新時間:2020年09月02日 11:10:20   作者:aspirant  
這篇文章主要介紹了Java Random.nextInt()方法原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

lic int nextInt(int n)

該方法的作用是生成一個隨機的int值,該值介于[0,n)的區(qū)間,也就是0到n之間的隨機int值,包含0而不包含n。

關于Random r = new Random(47)中47的意思
今天看Java編程思想的時候看到了一段這樣的代碼:

Random r = new Random(47);
int a = r.nextInt(26);
System.out.println(a);

剛開始沒注意那個47,以為是隨機一個47以內的數,但是看到后面在nextInt(26)里面還有個26,一想26應該才是隨機數的范圍,那這個47是什么呢?

然后看源碼,看不懂。。。只知道是一個種子,然后百度查,總算理解了一些,如下:

首先要搞明白種子的概念:

想要獲取一個范圍內的隨機數(例如26,隨機數可能是0-25),首先需要一個種子(其實就是一個數值)。

每個種子會對應這個范圍內(0-26)的唯一的一個隨機數。

47這個種子在26這個范圍內,所對應的隨機數為24,所以每次隨機得出的結果都為24.

(注意:47在26這個范圍內對應的是24,這個是死的,固定的,無論你執(zhí)行多少次,它還是24)

至于為什么種子47會對應24,這個涉及到java封裝的算法,有興趣可以深入了解。

但是大家可能會發(fā)現,平常我們生成隨機數的時候并沒有傳那個種子,如下:

Random r = new Random();
int a = r.nextInt(26);
System.out.println(a);

然后一運行,發(fā)現每次運行出來的結果不一樣,是所謂的隨機數,原來如果沒有種子的話,程序會取當前日期的毫秒數來作為種子,所以每次執(zhí)行種子都會不同,因為每次時間的毫秒數是不一樣的,所以隨機出來的數也就會不同。

總之,new Random(47)里面的47表示產生隨機數的一個種子,nextInt(26)表示隨機數的范圍,種子和范圍是相關聯(lián)的,一個種子對應一個范圍內的一個固定的隨機數,如果不填種子,則會默認取當前時間的毫秒數作為種子來生成隨機數。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 淺談Java轉義符\\|

    淺談Java轉義符\\|

    java中\(zhòng)需要用\\來表示吧這個你應該知道,而split中傳入的參數是什么呢 他并不是普通的字符串 你可以查一下api文檔 它要求傳入的是正則表達式 而正則表達式也需要這個\所以在這里有這個\\
    2015-06-06
  • SpringBoot使用thymeleaf實現前端表格

    SpringBoot使用thymeleaf實現前端表格

    雖然現在流行前后端分離,但是后端模版在一些關鍵地方還是非常有用的,例如郵件模版、代碼模版等。當然也不排除一些古老的項目后端依然使用動態(tài)模版。Thymeleaf 簡潔漂亮、容易理解,并且完美支持 HTML5,可以直接打開靜態(tài)頁面,同時不新增標簽,只需增強屬性
    2022-10-10
  • SpringBoot使用token簡單鑒權的具體實現方法

    SpringBoot使用token簡單鑒權的具體實現方法

    這篇文章主要介紹了SpringBoot使用token簡單鑒權的具體實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • Spring Cloud Alibaba 使用 Feign+Sentinel 完成熔斷的示例

    Spring Cloud Alibaba 使用 Feign+Sentinel 完成熔斷的示例

    這篇文章主要介紹了Spring Cloud Alibaba 使用 Feign+Sentinel 完成熔斷的示例,幫助大家更好的理解和學習使用Spring Cloud,感興趣的朋友可以了解下
    2021-03-03
  • spring boot打jar包發(fā)布的方法

    spring boot打jar包發(fā)布的方法

    這篇文章主要介紹了spring boot打jar包發(fā)布的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • 導出maven項目依賴的jar包(圖文教程)

    導出maven項目依賴的jar包(圖文教程)

    下面小編就為大家?guī)硪黄獙С鰉aven項目依賴的jar包(圖文教程)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Mybatis-Plus 自動填充失效問題解決

    Mybatis-Plus 自動填充失效問題解決

    在使用MyBatis-Plus時,自動填充功能可能會失效,這通常與版本和配置有關,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-10-10
  • Spring?Boot?+?Spring?Batch?實現批處理任務的詳細教程

    Spring?Boot?+?Spring?Batch?實現批處理任務的詳細教程

    這篇文章主要介紹了Spring?Boot+Spring?Batch實現批處理任務,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • Spring @ExceptionHandler注解統(tǒng)一異常處理和獲取方法名

    Spring @ExceptionHandler注解統(tǒng)一異常處理和獲取方法名

    這篇文章主要介紹了Spring注解之@ExceptionHandler 統(tǒng)一異常處理和獲取方法名,在實際項目中,合理使用@ExceptionHandler能夠提高代碼的可維護性和用戶體驗,通過本文的解析和實踐,讀者可以更好地理解和掌握@ExceptionHandler的用法和原理
    2023-09-09
  • 深入java內存查看與分析詳解

    深入java內存查看與分析詳解

    本篇文章是對java內存查看進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05

最新評論

上饶县| 金阳县| 株洲市| 新沂市| 定陶县| 尼玛县| 禄劝| 山阳县| 闽清县| 天祝| 高要市| 乌兰浩特市| 石城县| 元江| 依兰县| 萍乡市| 东明县| 白水县| 五大连池市| 甘泉县| 玉树县| 普兰店市| 光泽县| 沙洋县| 斗六市| 绥滨县| 柳州市| 马公市| 宁晋县| 莫力| 都匀市| 墨江| 乌海市| 光泽县| 通河县| 花垣县| 灵丘县| 大姚县| 谷城县| 安多县| 无极县|