मुझे पता चला कि Java supports constant folding of primitive types, लेकिन String
के बारे में क्या?क्या जावा कंपाइलर में स्ट्रिंग कॉन्स्टेंट फोल्डिंग शामिल है?
उदाहरण
अगर मैं निम्नलिखित स्रोत कोड
out.write(""
+ "<markup>"
+ "<nested>"
+ "Easier to read if it is split into multiple lines"
+ "</nested>"
+ "</markup>"
+ "");
क्या संकलित कोड में चला जाता है बनाने के?
संयुक्त संस्करण? out.write("<markup><nested>Easier to read if it is split into multiple lines</nested></markup>");
या कम कुशल रन-टाइम concatenation संस्करण? out.write(new StringBuilder("").append("<markup>").append("<nested>").append("Easier to read if it is split into multiple lines").append("</nested>").append("</markup>").append(""));
स्ट्रिंग कॉन्सटेनेशन डिवाइस पर लिखने से लगभग 100x तेज है। यह वास्तव में कोई फर्क नहीं पड़ता अगर यह नहीं (लेकिन यह करता है) –
मैंने अभी इसे अपने लैपटॉप और उसके 50x गुना धीमा परीक्षण किया। –
यह वास्तव में जेएलएस द्वारा आवश्यक व्यवहार है।/आप जनरेट कोड को 'javap -c' के साथ देख सकते हैं। –