JAVA常見開發問題
1、Random類分Math.random()和new Random()兩種,呼叫這個Math.Random()函式能夠返回帶正號的double值,取值範圍是[0.0,1.0),在該範圍內(近似)均勻分佈。因為返回值是double型別的,小數點後面可以保留15位小數,所以產生相同的可能性非常小,在這一定程度上是隨機數。Random():使用一個和當前系統時間對應的相對時間有關的數字作為種子數。 Random(long seed):直接傳入一個種子數。種子就是產生隨機數的第一次使用值,機制是通過一個函式,將這個種子的值轉化為隨機數空間中的某一個點上,並且產生的隨機數均勻的散佈在空間中。以後產生的隨機數都與前一個隨機數有關。所以在使用隨機數的時候不要直接new Random(10),同一個種子,生成N個隨機數,當你設定種子的時候,這N個隨機數是什麼已經確定。相同次數生成的隨機數字是完全相同的。 這樣會導致很大可能產生的數字相同,並不隨機。
ThreadLocalRandom:是JDK 7之後提供併發產生隨機數,能夠解決多個執行緒發生的競爭爭奪。ThreadLocalRandom不是直接用new例項化,而是第一次使用其靜態方法current()。從Math.random()改變到ThreadLocalRandom有如下好處:我們不再有從多個執行緒訪問同一個隨機數生成器例項的爭奪。取代以前每個隨機變數例項化一個隨機數生成器例項,我們可以每個執行緒例項化一個
相關文章
- java 常見問題Java
- Laravel 個人開發常見問題Laravel
- 近期BSN開發常見問題
- DDC/NFT開發常見問題
- Java開發常見基礎題大全Java
- 近期BSN開發常見問題答疑
- DDC開發常見問題答疑(二)
- Vue.js開發常見問題Vue.js
- 常見的Java面試問題Java面試
- Java 常見問題彙總Java
- JAVA系列:HashMap常見問題JavaHashMap
- vue.js 前端開發常見問題Vue.js前端
- 開發過程中mysql常見問題MySql
- 微信小程式中開發常見問題微信小程式
- react-native開發常見問題React
- 前端開發常見問題精選(五)前端
- 微信小程式開發常見問題(四)微信小程式
- 微信小程式開發常見問題(五)微信小程式
- 微信小程式開發常見問題(七)微信小程式
- iOS開發常見問題之綜合篇iOS
- VueJS 開發常見問題集錦VueJS
- DELPHI開發Web程式常見問題 (轉)Web
- redis持久化開發運維常見問題Redis持久化運維
- Vue.JS 開發常見問題集錦Vue.js
- vue專案開發過程常見問題Vue
- iOS開發執行報錯、常見問題iOS
- MFC開發常見問題的回答2 (轉)
- MFC開發常見問題的回答3 (轉)
- java中list的常見問題。Java
- Java常見問題集錦(轉)Java
- 阿里JAVA開發面試常問問題總結阿里Java面試
- lzg_ad:使用EWF API開發常見問題API
- Java記憶體模型常見問題Java記憶體模型
- 0.java開發常見故障Java
- MySQL資料庫開發常見問題及優化MySql資料庫優化
- 軟體開發中存在的25個常見問題
- iOS開發中兩個常見問題的處理iOS
- 敏捷擁護者眼中敏捷開發的常見問題敏捷