java如何生成随机数
生活随笔
收集整理的這篇文章主要介紹了
java如何生成随机数
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
java如何生成隨機(jī),java生成隨機(jī)數(shù)的兩種方式。
java生成隨機(jī)數(shù)有兩種方法:
1、使用Math方法,Math.random()隨機(jī)生成一個double類型[0,1),如果想生成1~100的隨機(jī)數(shù):
如:int num = (int)(Math.random()*100);2、使用Random方法生成隨機(jī)數(shù)
public static void testRandom() {Random random = new Random();random.setSeed(10000L);for(int i = 0 ; i < 10 ; i ++) {System.out.println(random.nextInt(1000));}System.out.println("------------------");random = new Random();random.setSeed(10000L);for(int i = 0 ; i < 10 ; i ++) {System.out.println(random.nextInt(1000));}}結(jié)果如下:
208 572 116 475 500 574 641 166 727 670 ------------------ 208 572 116 475 500 574 641 166 727 6703、使用SecureRandom生成隨機(jī)數(shù),代碼如下:
public static void testSecureRandom() {SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");secureRandom.setSeed(10000L);for(int i = 0 ; i < 10 ; i ++) {System.out.println(secureRandom.nextInt(1000));}System.out.println("-------------------");secureRandom = new SecureRandom();secureRandom.setSeed(10000L);for(int i = 0; i < 10 ; i ++) {System.out.println(secureRandom.nextInt(1000));}}結(jié)果如下:
851 624 367 62 625 156 930 530 346 260 ------------------- 395 65 353 453 275 194 34 227 538 144、如何選擇使用隨機(jī)數(shù)?
首先我們知道java.util.Random的實(shí)例不是加密安全的,SecureRandom來獲取加密安全的偽隨機(jī)數(shù)生成器,以供對安全敏感的應(yīng)用程序使用。以上二三可以很明顯的發(fā)現(xiàn),我要是知道setSeed值(即時間戳),很明顯能把隨機(jī)數(shù)給猜出來。所以不建議使用Random。
5、一些公司隨機(jī)數(shù)選擇的案例
可能某些小公司是讓使用Random的,使用Random也可以獲取到隨機(jī)數(shù),但是為了程序的安全性,還是使用SecureRandom比較好。
現(xiàn)在有好多公司,明文禁止使用java.util.Random。
總結(jié)
以上是生活随笔為你收集整理的java如何生成随机数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android Trace View使用
- 下一篇: 自主招生计算机网测,自主招生考试中,笔试