淺談java中Math.random()與java.util.random()的區(qū)別
今天突然想起來(lái),java產(chǎn)生隨機(jī)數(shù)的問(wèn)題,上機(jī)試了一下,找到了一點(diǎn)區(qū)別,在這里總結(jié)一下;
直接調(diào)用Math.random()是產(chǎn)生一個(gè)[0,1)之間的隨機(jī)數(shù),
如果用
java.util.Random random=new Random();random.nextInt()
這樣產(chǎn)生一個(gè)長(zhǎng)整型的隨機(jī)數(shù)并且與上一次是一樣的,如果過(guò)一會(huì)再產(chǎn)生就不會(huì)一樣了,例如:
for (int i = 0; i < 10; i++) {
Random random=new Random();
Thread.sleep(100);
System.out.print((int)random.nextInt(100)+" ");
}
就是產(chǎn)生不同的隨機(jī)Long數(shù)了
如果想用java.util.Random()產(chǎn)生指定范圍的隨機(jī)數(shù)就需要進(jìn)行求模運(yùn)算,進(jìn)行一些處理。
同樣 可以random.nextInt(100)產(chǎn)生100以內(nèi)的隨機(jī)數(shù)。一般最好用nextInt(范圍)的,如果不是大量的運(yùn)算的話,就可以用Math.random了,(因?yàn)樗梢赃\(yùn)算起來(lái)慢一些,浮點(diǎn)之后再取整)
以上這篇淺談java中Math.random()與java.util.random()的區(qū)別就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java字節(jié)碼框架ASM操作字節(jié)碼的方法淺析
這篇文章主要給大家介紹了關(guān)于java字節(jié)碼框架ASM如何操作字節(jié)碼的相關(guān)資料,文中通過(guò)示例代碼介紹的很詳細(xì),有需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-01-01
jpa實(shí)現(xiàn)多對(duì)多的屬性時(shí)查詢的兩種方法
這篇文章主要介紹了jpa實(shí)現(xiàn)多對(duì)多的屬性時(shí)查詢的兩種方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
SpringBoot?Knife4j框架&Knife4j的顯示內(nèi)容的配置方式
Knife4j框架是基于Swagger2開發(fā)的在線API文檔生成工具,主要功能包括自動(dòng)生成API文檔、接口文檔展示、接口測(cè)試工具、接口權(quán)限控制和在線調(diào)試,該框架支持通過(guò)注解自動(dòng)生成詳細(xì)的接口文檔,開發(fā)者可以直接在文檔界面進(jìn)行接口測(cè)試和調(diào)試2024-09-09
詳解mybatis collection標(biāo)簽一對(duì)多的使用
這篇文章主要介紹了mybatis collection標(biāo)簽一對(duì)多的使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06
如何基于SpringSecurity的@PreAuthorize實(shí)現(xiàn)自定義權(quán)限校驗(yàn)方法
spring Security提供有若干個(gè)過(guò)濾器,它們能夠攔截Servlet請(qǐng)求,并將這些請(qǐng)求轉(zhuǎn)給認(rèn)證和訪問(wèn)決策管理器處理,從而增強(qiáng)安全性,下面這篇文章主要給大家介紹了關(guān)于如何基于SpringSecurity的@PreAuthorize實(shí)現(xiàn)自定義權(quán)限校驗(yàn)方法的相關(guān)資料,需要的朋友可以參考下2023-03-03

