Java에서 난수를 생성하는 방법은 무엇입니까? 이 기사에서는 Java에서 난수를 생성하는 방법을 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
Java에서는 일부 내장 메소드와 클래스를 사용하여 난수를 생성하는 세 가지 메소드가 제공됩니다.
1, java.util.Random 클래스
2, Math.random 메소드: 이중 유형 난수를 생성할 수 있습니다. .
3. ThreadLocalRandom 클래스
Java에서 난수 생성을 구현하는 방법을 살펴보겠습니다.
1.java.util.Random 클래스
Java 유틸리티 클래스 라이브러리의 클래스: java.util.Random은 다양한 유형의 난수를 생성하는 메소드를 제공합니다.
java.util.Random 클래스를 사용하여 난수를 생성하려면 먼저 이 클래스의 인스턴스를 만든 다음 해당 인스턴스를 사용하여 nextInt(), nextDouble(), nextLong() 등과 같은 메서드를 호출해야 합니다.
java.util.Random 클래스를 사용하면 임의의 정수 수, 부동 소수점 수, 배정밀도 수, 긴 정수, 부울 피연산자 및 기타 유형을 무작위로 생성할 수 있습니다.
생성하려는 숫자 범위의 상한을 설정하기 위해 메서드에 인수를 전달할 수 있습니다. 예를 들어, nextInt(6)은 0에서 5까지의 범위에 있는 숫자를 생성합니다.
// 随机数生成 // 使用java.util.Random; import java.util.Random; public class generateRandom{ public static void main(String args[]) { // 创建随机类的实例 Random rand = new Random(); // 在0到999范围内生成随机整数 int rand_int1 = rand.nextInt(1000); int rand_int2 = rand.nextInt(1000); // 输出随机整数 System.out.println("随机整数: "+rand_int1); System.out.println("随机整数: "+rand_int2); // 生成随机双精度数 double rand_dub1 = rand.nextDouble(); double rand_dub2 = rand.nextDouble(); // 输出随机双精度数 System.out.println("随机双精度数: "+rand_dub1); System.out.println("随机双精度数: "+rand_dub2); } }
실행 출력:
2. Math.random 메서드
Math 클래스에는 지수 계산, 로그 계산 등과 같은 다양한 수치 연산을 수행하는 다양한 메서드가 포함되어 있습니다. 다음 메소드 중 하나: random()은 양수 부호가 있는 이중 숫자를 반환할 수 있습니다. 값은 0.0보다 크거나 같고 1.0보다 작습니다. 즉, 값 범위는 왼쪽이 닫히고 오른쪽이 열리는 간격입니다. [0.0, 1.0).
random() 메서드에서 반환된 값은 의사 무작위로 선택되며 [0.0, 1.0) 범위 내에서 (대략) 균일하게 분포됩니다.
참고: 이중 유형 난수만 생성할 수 있습니다.
아래에서는 이 방법을 사용하여 Java 코드를 통해 난수를 생성하는 방법을 소개합니다.
// Math.random() 生成随机数 import java.util.*; public class generateRandom { public static void main(String args[]) { // 随机双精度数的生成 System.out.println("随机双精度数: " + Math.random()); System.out.println("随机双精度数: " + Math.random()); } }
실행 결과:
3. java.util.concurrent.ThreadLocalRandom 클래스
ThreadLocalRandom 클래스는 다음과 같습니다. java 1.7 다중 스레드 간에 발생하는 경쟁을 해결할 수 있는 동시 난수 생성 기능을 제공하기 위해 도입되었습니다. 정수, 배정밀도, 부울 및 기타 유형의 난수를 생성할 수 있습니다.
ThreadLocalRandom의 주요 구현 세부 사항:
1), Random의 AtomicLong을 시드로 사용하는 대신 일반 long을 사용합니다
2), 자체적으로 ThreadLocalRandom 인스턴스를 생성할 수 없습니다. 생성자가 비공개이므로 정적 메서드 ThreadLocalRandom을 사용할 수 있습니다. .current()
3), CPU 캐시를 인식하며 8개의 긴 가상 필드를 사용하여 64비트 L1 캐시 라인을 채웁니다
이제 간단한 Java 코드를 통해 이를 사용하는 방법을 소개합니다. 클래스는 난수를 생성합니다:
// 随机数的产生 // 使用java.util.concurrent.ThreadLocalRandom类 import java.util.concurrent.ThreadLocalRandom; public class generateRandom { public static void main(String args[]) { // 在0到999范围内生成随机整数 int rand_int1 = ThreadLocalRandom.current().nextInt(); int rand_int2 = ThreadLocalRandom.current().nextInt(); // 输出随机整数 System.out.println("Random Integers: " + rand_int1); System.out.println("Random Integers: " + rand_int2); // 生成随机双精度数 double rand_dub1 = ThreadLocalRandom.current().nextDouble(); double rand_dub2 = ThreadLocalRandom.current().nextDouble(); // 输出随机双精度数 System.out.println("Random Doubles: " + rand_dub1); System.out.println("Random Doubles: " + rand_dub2); // 生成随机布尔值 boolean rand_bool1 = ThreadLocalRandom.current().nextBoolean(); boolean rand_bool2 = ThreadLocalRandom.current().nextBoolean(); // 输出随机布尔值 System.out.println("Random Booleans: " + rand_bool1); System.out.println("Random Booleans: " + rand_bool2); } }
실행 결과:
요약: 위 내용은 이 기사의 전체 내용입니다. 모든 사람의 학습에 도움이 되기를 바랍니다. 더 많은 관련 비디오 튜토리얼을 보려면 Java Tutorial을 방문하세요!
위 내용은 Java에서 난수를 생성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!