Avatar ·

¿Por qué la salida de "B" en Java es mucho más lenta que la salida de "#"?

¡Hola a todos! Soy nuevo en Java y estoy escribiendo un script simple para construir un histograma de distribución de números aleatorios. En el bucle, imprimo caracteres en la consola a través de System.out.print(). Noté algo extraño: cuando imprimo el carácter "#" (almohadilla), el programa se ejecuta muy rápido. Pero si cambio el carácter a "B" (letra mayúscula latina), la ejecución se vuelve notablemente más lenta: ¡una diferencia de 2 a 3 veces! Aquí está el código simplificado que demuestra el 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("#"); // o "B" } long end = System.currentTimeMillis(); System.out.println("\nTiempo: " + (end - start) + " ms"); } } ``` Con "#" obtengo alrededor de 200-300 ms, y con "B" alrededor de 600-800 ms. Probé en diferentes versiones de Java (8, 11, 17) y la diferencia se reproduce de manera consistente. ¿Por qué sucede esto? Después de todo, ambos caracteres son e