差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

java:code_quality:findbug:dm_nextint_via_nextdouble [2013/02/24 23:01]
127.0.0.1 外部編輯
java:code_quality:findbug:dm_nextint_via_nextdouble [2023/06/25 09:48]
行 1: 行 1:
-{{tag>​java findbugs}} 
-====== DM_NEXTINT_VIA_NEXTDOUBLE ====== 
-===== Description ===== 
-Dm: Method uses the nextDouble method of Random to generate a random integer; using nextInt is more efficient\\ 
-使用nextDouble去產生一個random integer,造成效能降低。 
-===== Solution ===== 
-If r is a java.util.Random,​ you can generate a random number from 0 to n-1 using r.nextInt(n),​ rather than using (int)(r.nextDouble() * n). \\ 
-用nextInt(n)取代(int)(r.nextDouble() * n)即可。 
-===== Example ===== 
-Before:\\ 
-<code java> 
- private static void delay(){ 
- int d = (int)(Math.random()*1000);​ 
- try { 
- Thread.sleep(d);​ 
- } catch (InterruptedException e) { 
- // log.. 
- } 
- } 
-</​code>​ 
  
-After:\\ 
-<code java> 
- private static void delay(){ 
- int d = r.nextInt(1000);​ 
- try { 
- Thread.sleep(d);​ 
- } catch (InterruptedException e) { 
- // log.. 
- } 
- } 
-</​code>​ 
- 
-PS. Math.random()內也是會去產生Random物件去取得亂數值。