为什么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)上测试过——差异稳定复现。为什么会这样?毕竟两个字符都是单