परिदृश्य यह है कि मुझे कम से कम दो बार मूल्य तक पहुंचने की आवश्यकता है। अर्थात। मैं एप्लिकेशन में क्या हो रहा है इसका ट्रैक रखने के लिए लॉगर का उपयोग कर रहा हूं। मैं ऑब्जेक्ट का नाम लॉग करना चाहता हूं, वह फ़ंक्शन काम कर रहा है, और बाद में एक ही नाम के साथ कुछ करने पर (यानी जांच करें कि इसमें कुछ स्ट्रिंग है या इसे सरणी में डालें)।मूल्यों को संग्रहीत करने के लिए चर का उपयोग करना या वस्तुओं से मूल्य प्राप्त करना?
चर में नाम भंडारण:
foo(Bar bar){
String name = bar.getName();
logger.info("I am working with "+name);
this.doSomethingWith(name);
}
) या getName (बुला दो बार:
foo(Bar bar){
logger.info("I am working with "+bar.getName());
this.doSomethingWith(bar.getName());
}
मैं समझता हूँ, कि पहले परिदृश्य में, मैं एक नया स्ट्रिंग पैदा करेगा, एक मूल्य निर्दिष्ट इसके लिए और फिर इस मान को दो बार पुनः प्राप्त करें। इस तरह मैं अधिक मेमोरी संसाधनों का उपयोग कर रहा हूं, सही?
दूसरे परिदृश्य में, क्या मैं ऑब्जेक्ट बार को दो बार एक्सेस कर रहा हूं और फिर इसे दो बार एक्सेस कर रहा हूं। मुझे लगता है कि यह एक ड्रवाई दृष्टिकोण नहीं है। लेकिन दूसरी तरफ मैं स्मृति में खुद को दोहराना नहीं कर रहा हूं, सही?
कौन सा दृष्टिकोण बेहतर है?
पहली विधि में आप _not_ एक नई स्ट्रिंग बना रहे हैं। तो दोनों विधियों को एक ही स्मृति खपत के साथ खत्म होना चाहिए। – Fildor
यह देखने के लिए कि क्या आपकी समस्या वास्तव में एक मुद्दा है, एक डीकंपेलर के साथ जेनरेट बाइट कोड की जांच करना उचित हो सकता है; 'जावैक' इस उपयोग के मामले को पहचान सकता है और इसे किसी एक तरीके से अनुकूलित कर सकता है या कोई फर्क नहीं पड़ता कि आप जावा में इसे किस तरह लिखते हैं। – akaIDIOT