Security Intermedio

Usa l'interfaccia RandomGenerator per scegliere gli algoritmi di numeri casuali per nome senza accoppiamento a una classe specifica.

✕ 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();
Vedi un problema con questo codice? Faccelo sapere.
🔧

Algoritmo-agnostico

Scegli il miglior algoritmo RNG per nome senza cambiare la struttura del codice.

Algoritmi migliori

Accesso ai moderni generatori LXM con proprietà statistiche superiori.

🔗

API unificata

Un'interfaccia copre Random, ThreadLocalRandom, SplittableRandom e altro.

Approccio Vecchio
new Random() / ThreadLocalRandom
Approccio Moderno
Factory RandomGenerator
Dal JDK
17
Difficoltà
Intermedio
Interfaccia RandomGenerator
Disponibile

Disponibile dal JDK 17 (settembre 2021, JEP 356).

JDK 17 ha introdotto RandomGenerator come interfaccia comune per tutte le implementazioni RNG. Invece di codificare direttamente new Random() o ThreadLocalRandom, puoi selezionare gli algoritmi per nome tramite una factory, rendendo facile passare tra algoritmi ottimizzati per diversi casi d'uso (velocità, qualità statistica, divisibilità).

Condividi 𝕏 🦋 in