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 ms मिलते हैं, जबकि "B" के साथ लगभग 600-800 ms। मैंने Java के विभिन्न वर्ज़न (8, 11, 17) पर परीक्षण किया — अंतर स्थिर रूप से दोहराया जाता है। ऐसा क्यों होता है? दोनों कैरेक्टर एक ही बाइट हैं।