में पूछे जाने पर एक unrelated question जहां मैं इस तरह कोड था:जावा: अगर-रिटर्न-अगर रिटर्न बनाम अगर-रिटर्न-elseif-रिटर्न
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
// Check property values
}
मैं एक टिप्पणी जो दावा किया है कि इस इष्टतम नहीं था हो गया, और (अगर मैं सही ढंग से समझ में आ) यह बजाय कि यह करना चाहिए: क्योंकि वापसी बयान के
public boolean equals(Object obj)
{
if (this == obj)
return true;
else if (obj == null)
return false;
else if (getClass() != obj.getClass())
return false;
// Check property values
}
, मैं सच में नहीं देख सकते क्यों उनमें से किसी को और अधिक कुशल या अन्य की तुलना में तेजी से किया जाना चाहिए। एक निश्चित वस्तु को देखते हुए, दोनों विधियों को एक समान संख्या में चेक करना होगा जहां तक मैं देख सकता हूं। और वापसी विवरणों के कारण, उनमें से कोई भी अतिरिक्त कोड नहीं चलाया जाएगा।
क्या मुझे यहां कुछ याद आ रही है? क्या इसके लिए कुछ है? क्या कुछ कंपाइलर अनुकूलन या कुछ चल रहा है या जो भी हो?
मुझे पता है कि यह माइक्रो ऑप्टिमाइज़ेशन है और मैं सबसे पहले किसी भी तरह से चिपकने वाला हूं, क्योंकि मुझे लगता है कि यह एक ही स्थिति पर सभी ifs के साथ क्लीनर दिखता है। लेकिन मैं इसकी मदद नहीं कर सकता; मैं उत्सुक हूँ!
मुझे उस व्यक्ति का नाम बताएं जिसने यह टिप्पणी की है और मैं उसे उसके लिए नीचे डाल दूंगा;) –
मैं सलाह देता हूं कि इस तरह के सूक्ष्म स्तर अनुकूलन के बारे में परेशान न करें। आप हमेशा शुद्धियों को विभाजित कर सकते हैं जो बालों को अच्छी तरह विभाजित करते हैं। इस तरह के अनुकूलन को संकलक द्वारा अच्छी तरह से संभाला जाता है और संभावनाएं पहले से ही पहले संस्करण में कम हो जाती हैं (या इसके विपरीत आपके कंपाइलर के विचारों के आधार पर इसके विपरीत)। –
@ जिगार जोशी - आपके हाथ को बढ़ाने के लिए वर्चुअल (+1) :-) –