क्या कोई ओवरहेड है जब हम एक प्रकार की वस्तुओं को दूसरे प्रकार में डाल देते हैं? या संकलक बस सबकुछ हल करता है और रन टाइम पर कोई कीमत नहीं है?क्या जावा कास्टिंग ओवरहेड पेश करता है? क्यूं कर?
क्या यह एक सामान्य चीज है, या अलग-अलग मामले हैं?
उदाहरण के लिए, मान लें कि हमारे पास ऑब्जेक्ट [] का एक सरणी है, जहां प्रत्येक तत्व का एक अलग प्रकार हो सकता है। लेकिन हम हमेशा यह सुनिश्चित करने के लिए जानते हैं कि, कहते हैं, तत्व 0 एक डबल है, तत्व 1 एक स्ट्रिंग है। (मुझे पता है कि यह एक गलत डिजाइन है, लेकिन चलो बस मुझे यह करना है।)
क्या जावा की प्रकार की जानकारी अभी भी रन टाइम पर आसपास रखी गई है? या संकलन के बाद सब कुछ भूल गया है, और यदि हम (डबल) तत्व [0] करते हैं, तो हम केवल सूचक का पालन करेंगे और उन 8 बाइट्स को डबल के रूप में समझेंगे, जो कुछ भी है?
मैं जावा में प्रकारों के तरीके के बारे में बहुत अस्पष्ट हूं। यदि आपके पास पुस्तकों या लेख पर कोई संशोधन है तो धन्यवाद। ,
अंतर्निहित कास्टिंग जब आप एक व्यापक प्रकार है, जो स्वचालित रूप से किया जाता है करने के लिए एक प्रकार से डाली और वहाँ कोई भूमि के ऊपर है:
उदाहरण और कास्टिंग का प्रदर्शन काफी अच्छा है। मैंने यहां समस्या के विभिन्न दृष्टिकोणों के आसपास जावा 7 में कुछ समय पोस्ट किया: http://stackoverflow.com/questions/16320014/java-optimization-nitpick-is-it-faster-to-cast-something-and-let-it- फेंक-एक्ससेप/28858680 # 28858680 – Wheezil
इस अन्य प्रश्न के बहुत अच्छे जवाब हैं http://stackoverflow.com/questions/16741323/casting-performance-in- अलग-levels-when-casting-down – user454322