मैं इस के लिए flamed करने के लिए जा रहा हूँ लेकिन ...
सी ++ हाथ नीचे ढेर सामने तनाव मुक्त पर जावा से बेहतर है - वहाँ बस कोई प्रतियोगिता है। सी ++ ऑब्जेक्ट डिस्ट्रक्टर्स कैच पॉइंट तक पहुंचने तक सभी तरह से स्टैक का बैक अप लेते हैं - सभी प्रबंधित संसाधनों को गहन तरीके से जारी करते हैं।
जैसा कि आपने कहा था, जावा गैर-निर्धारक कचरा कलेक्टर (सबसे खराब मामला) की दया पर या यह स्पष्ट रूप से तैयार किए गए कुछ भी हाथों में छोड़ देता है, आखिरकार आपने अपने कोड को बिछाया है (चूंकि जावा नहीं करता है सच आरएआईआई का समर्थन करें)। यही है, सभी संसाधन प्रबंधन कोड क्लास डिजाइनर के हाथों की बजाय प्रत्येक वर्ग के ग्राहकों के हाथों में है, जहां यह होना चाहिए।
उस ने कहा, सी ++ में, स्टैक अनचाहे तंत्र केवल ठीक से काम करता है यदि आप यह सुनिश्चित करने के लिए सावधान हैं कि विनाशक स्वयं अपवाद नहीं छोड़ते हैं। एक बार आपके पास दो सक्रिय अपवाद हो जाने के बाद, आपका प्रोग्राम abort()
बिना गुजरने के (और निश्चित रूप से शेष विनाशकों को फायर किए बिना)।
स्रोत
2010-03-31 08:54:48
विषय-वस्तु - "बेहतर" परिभाषित करें। – razlebe
जावा एक उचित कचरा कलेक्टर लागू करता है, इसलिए सिद्धांत रूप में, आपको किसी ऑब्जेक्ट के बारे में चिंता करने की ज़रूरत नहीं है जिसे वह स्टैक पर बनाता है। सी ++ मान लें कि आप सावधान रह रहे हैं। – thecoshman
जावा _memory_ कचरा कलेक्टर लागू करता है। अस्थायी फ़ाइलें कचरा नहीं एकत्र की जाती हैं, और परिणामस्वरूप एक स्टैक द्वारा लीक हो सकती है। दूसरी तरफ, सी ++ में अनावश्यक कॉल विनाशकों में, जो मेमोरी क्लीनअप के अलावा अस्थायी फ़ाइलों और अन्य संसाधनों को भी साफ कर सकते हैं। तो जावा आसान है और सी ++ अधिक लचीला, एक मानक इंजीनियरिंग ट्रेडऑफ। – MSalters