java - सिस्टम। एक्सट(0) कॉल करेगा; मुख्य रन कचरा संग्रह के बाहर एक वस्तु से?




garbage-collection exit (2)

System.exit () एक स्थैतिक फ़ंक्शन है इसलिए इसे कोई फर्क नहीं पड़ता कि आप इसे कहां कहते हैं प्रभाव उसी हैं जो जावा आभासी मशीन को समाप्त कर रहे हैं। समाप्ति पर जेवीएम द्वारा उपयोग किए गए किसी भी संसाधन को ओएस पर वापस दिया जाता है।

स्रोत: http://docs.oracle.com/javase/7/docs/api/java/lang/System.html#exit(int)

मैं एक ऐसी वस्तु का उपयोग करने की योजना बना रहा हूं जिसे पूरे कार्यक्रम से बाहर निकलने के लिए मेरी मुख्य विधि कहा जाता है। ऑब्जेक्ट में ऐसी एक विधि है जो सिर्फ सिस्टम System.exit(0). चलाती है System.exit(0). मेरा सवाल है, क्या यह एक सुरक्षित बात है? अगर मैं System.exit(0) को किसी अन्य ऑब्जेक्ट से चलाता हूं, तो क्या कलेक्शन कलेक्शन पूरी तरह से मेमोरी से पूरे प्रोग्राम को साफ कर देगा, या मुझे कॉलिंग क्लास को मेमोरी से साफ करने में समस्या होगी? मेरा विचार है कि जब से JVM समाप्त हो जाएगा, तो कॉलिंग क्लास कचरा एकत्र होगा, या हो सकता है कि मुझे कॉलिंग क्लास को मेमोरी से साफ़ करना पड़ सकता है क्योंकि ऑब्जेक्ट की स्टैक फ्रेम मुख्य स्टैक फ्रेम से ऊपर है। यह मुख्य रूप से मेरे बारे में मुद्दा जावा के बारे में पर्याप्त नहीं जानता है ... किसी भी मदद के लिए धन्यवाद!


System.exit (0) का उपयोग करके पूरे एप्लिकेशन को स्टैक और ढेर से फ्लश किया जाएगा। इस प्रोग्राम की पुष्टि करने के लिए अपने प्रोग्राम को चलाने के दौरान विज़ुअलVM का उपयोग करें। मैं इसे प्राप्त नहीं कर सकता, लेकिन मेरे पास एक आवेदन है जो रैम को कुछ जीबी तक लाया जा सकता है स्मृति उपयोग के लायक है मैंने एक ऑब्जेक्ट में सिस्टम.एक्सिट () स्टेटमेंट डाल दिया है और सभी मेमोरी को मुक्त किया है।





garbage