Por que a saída "B" em Java é muito mais lenta do que a saída "#"?
Olá a todos! Sou novo em Java e estou escrevendo um script simples para construir um histograma de distribuição de números aleatórios. Em um loop, estou imprimindo caracteres no console via System.out.print(). Notei algo estranho: quando imprimo o caractere "#" (hash), o programa executa muito rápido. Mas se eu mudo o caractere para "B" (letra maiúscula latina), a execução fica visivelmente mais lenta — uma diferença de 2 a 3 vezes!
Aqui está o código simplificado que demonstra o problema:
```java
public class TestPrint {
public static void main(String[] args) {
long start = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
System.out.print("#"); // ou "B"
}
long end = System.currentTimeMillis();
System.out.println("\nTempo: " + (end - start) + " ms");
}
}
```
Com "#" obtenho cerca de 200-300 ms, e com "B" cerca de 600-800 ms. Testei em diferentes versões do Java (8, 11, 17) — a diferença se reproduz consistentemente. Por que isso acontece? Afinal, ambos os caracteres são e