Avatar ·

为什么Java中输出"B"比输出"#"慢得多?

大家好!我是Java新手,正在编写一个简单的脚本用于构建随机数分布的直方图。在循环中我通过System.out.print()向控制台输出字符。我注意到一个奇怪的现象:当我输出"#"(井号)时,程序执行非常快。但如果我将字符改为"B"(拉丁大写字母),执行速度明显变慢——相差2-3倍! 以下是展示问题的简化代码: ```java public class TestPrint { public static void main(String[] args) { long start = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { System.out.print("#"); // 或 "B" } long end = System.currentTimeMillis(); System.out.println("\n时间: " + (end - start) + " ms"); } } ``` 使用"#"时我得到大约200-300毫秒,而使用"B"时大约600-800毫秒。我在不同Java版本(8、11、17)上测试过——差异稳定复现。为什么会这样?毕竟两个字符都是单