posted by 네코냥이 2013. 6. 13. 11:41

출처: BACK TO THE BASIC, JAVA 핵심 요약 노트 : 빠르게 훑어보는 자바 프로그래밍


Math 클래스는 random 메소드가 synchronized 키워드로 동기화 처리되어 있

어서, 멀티 스레드 환경에서 사용하면 성능상에 문제가 발생할 수도 있다. 


public static synchronized double random( )


간단한 난수 생성을 위해 Math 클래스의 random( ) 메소드를 사용하는 것은 괜찮지만, 성능에 민감한 프로그램을 작성해야 하는 경우라면 Random 클래스를 사

용하는 것이 좋다.


int nextInt( )

int nextInt(int n)

float nextFloat( )

double nextDouble( )

boolean nextBoolean( )


  // 다양한 형태의 랜덤(Random) 값을 리턴한다.

  Random r = new Random(); 

  System.out.println("다양한 형태의 난수값");

  System.out.println(r.nextInt(100));

  System.out.println(r.nextInt());

  System.out.println(r.nextDouble());

  System.out.println(r.nextFloat());

  System.out.println(r.nextBoolean());


   // Random 객체를 같은 값으로 생성할 때 같은 값을 리턴한다. 

      Random rand = new Random(1);

      Random rand2 = new Random(1);

        

      System.out.println();

      System.out.println("랜덤 객체 : obj1");

      for(int i=0; i<5; i++) {

         System.out.println(i + " : "+ rand.nextInt());

      }

        

      System.out.println();

      System.out.println("랜덤 객체 : obj2");

      for(int i=0; i<5; i++) {

         System.out.println(i + " : "+ rand2.nextInt());    

      }


=> 비교해보면 결과가 같다는 뜻. seed라고 보면 된다.



'JAVA > JAVA' 카테고리의 다른 글

[JAVA] XPATH를 이용한 XML 파싱  (0) 2014.09.16
자바 정규식 표현  (0) 2014.08.27
[자바] 형변환 캐스팅  (0) 2014.08.26
[JAVA] Calendar 클래스  (0) 2013.06.13
[JAVA] 클래스나 메소드가 Deprecated되었다는 의미는?  (0) 2013.06.13