Pourquoi un code avec des chaînes aléatoires affiche-t-il "hello world" ?
Bonjour à tous ! Je suis débutant en Java et je suis tombé sur un comportement étrange. J'ai écrit ce code :
```java
Random random = new Random(-229985452);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 5; i++) {
sb.append((char) ('a' + random.nextInt(26)));
}
System.out.println(sb.toString()); // Affiche "hello"
Random random2 = new Random(-147909649);
StringBuilder sb2 = new StringBuilder();
for (int i = 0; i < 5; i++) {
sb2.append((char) ('a' + random2.nextInt(26)));
}
System.out.println(sb2.toString()); // Affiche "world"
```
Je m'attendais à ce qu'à chaque exécution, des chaînes aléatoires soient affichées. Mais ce code imprime systématiquement "hello" et "world" sur différentes machines. Pourquoi cela se produit-il ? Est-ce une sorte de magie ou une particularité de Java ? J'ai redémarré le programme plusieurs fois — le résultat est toujours le même. Expliquez-moi, s'il vous plaît, comment cela fonctionne. Merci d'avance !
<<>>
Réponse courte : la seed (graine) du générateur de nombres aléatoires
La classe java.util.Random