Security Orta

Belirli bir sınıfa bağlı kalmadan rastgele sayı algoritmalarını ada göre seçmek için RandomGenerator arayüzünü kullanın.

✕ Java 8
// Hard-coded to one algorithm
Random rng = new Random();
int value = rng.nextInt(100);

// Or thread-local, but still locked in
int value = ThreadLocalRandom.current()
    .nextInt(100);
✓ Java 17+
// Algorithm-agnostic via factory
var rng = RandomGenerator.of("L64X128MixRandom");
int value = rng.nextInt(100);

// Or get a splittable generator
var rng = RandomGeneratorFactory
    .of("L64X128MixRandom").create();
Bu kodda bir sorun mu gördünüz? Bize bildirin.
🔧

Algoritmadan bağımsız

Kod yapısını değiştirmeden en iyi RNG algoritmasını ada göre seçin.

Daha iyi algoritmalar

Üstün istatistiksel özelliklere sahip modern LXM üreticilerine erişim.

🔗

Birleşik API

Tek arayüz; Random, ThreadLocalRandom, SplittableRandom ve daha fazlasını kapsar.

Eski Yaklaşım
new Random() / ThreadLocalRandom
Modern Yaklaşım
RandomGenerator fabrikası
JDK'dan itibaren
17
Zorluk
Orta
RandomGenerator arayüzü
Mevcut

JDK 17'den itibaren kullanılabilir (Eylül 2021, JEP 356).

JDK 17, tüm RNG uygulamaları için ortak arayüz olarak RandomGenerator'ı tanıttı. new Random() veya ThreadLocalRandom'ı sabit kodlamak yerine, farklı kullanım durumları için optimize edilmiş algoritmalar arasında kolayca geçiş yapmayı sağlayan bir fabrika aracılığıyla ada göre algoritma seçebilirsiniz (hız, istatistiksel kalite, bölünebilirlik).

Paylaş 𝕏 🦋 in