Security Intermédiaire

Utilisez l'interface RandomGenerator pour choisir des algorithmes de nombres aléatoires par nom sans se coupler à une classe spécifique.

✕ 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();
Un problème avec ce code ? Dites-le nous.
🔧

Agnostique à l'algorithme

Choisissez le meilleur algorithme de génération aléatoire par nom sans changer la structure du code.

Meilleurs algorithmes

Accès aux générateurs LXM modernes avec des propriétés statistiques supérieures.

🔗

API unifiée

Une interface couvre Random, ThreadLocalRandom, SplittableRandom et plus.

Ancienne Approche
new Random() / ThreadLocalRandom
Approche Moderne
Factory RandomGenerator
Depuis JDK
17
Difficulté
Intermédiaire
Interface RandomGenerator
Disponible

Disponible depuis JDK 17 (septembre 2021, JEP 356).

JDK 17 a introduit RandomGenerator comme interface commune pour toutes les implémentations de générateurs de nombres aléatoires. Au lieu de coder en dur new Random() ou ThreadLocalRandom, vous pouvez sélectionner des algorithmes par nom via une factory, facilitant le changement entre des algorithmes optimisés pour différents cas d'utilisation (vitesse, qualité statistique, divisibilité).

Partager 𝕏 🦋 in