मैं हाल ही में सोच रहा था कि java.lang.Runtime
और java.lang.System
दोनों लाइब्रेरी लोडिंग, कचरा संग्रहण और इसी तरह के संचालन के लिए समान तरीके क्यों हैं। क्या यह ऐतिहासिक कारणों से है, सुविधा के लिए, या वे वास्तव में भिन्न हैं? दोनों कक्षाएं जेडीके 1.0 से उपलब्ध हैं ...जावा - क्यों सिस्टम और रनटाइम कक्षाओं में समान तरीके हैं?
उत्तर
सिस्टम डेवलपर के लिए सिस्टम का उपयोग करने के लिए उपयुक्त हो सकता है कि विभिन्न चीजों का खुलासा करता है।
मैं सीधे रनटाइम के साथ खेलने वाले प्रोग्रामर के बारे में चिंतित हूं। सिस्टम को विधियों को कॉल करने के लिए, उन्हें उजागर करने की आवश्यकता है।
सिस्टम रनटाइम के लिए इंटरफ़ेस प्रदान करता है ताकि प्रोग्रामर द्वारा बुलाए जाने वाले रनटाइम विधियों तक पहुंच सक्षम हो सके। सिस्टम विधियों को कॉल करें और उन्हें उचित रूप से प्रतिनिधि दें।
यदि आप System#load(String)
विधि पर उदाहरण देखते हैं, तो आप देखते हैं कि यह विधि Runtime#load(String)
है। gc()
के लिए वही। तो यह शायद ऐतिहासिक कारणों के लिए सबसे अधिक है।
मैं ऐतिहासिक तर्क के लिए असहमत हूं। यदि आप जावा 1.0 एपीआई को देखते हैं, तो आप पाएंगे कि सिस्टम और रनटाइम में विधियां हमेशा मौजूद रही हैं। – Jonathan
मेरा अनुमान (याद रखें, इसका अनुमान है), यह है कि System
कक्षा में विधियां सुविधा के लिए हैं। उदाहरण के लिए, System.gc();
स्थैतिक है, जहां Runtime.gc();
एक उदाहरण विधि है। यह कॉल को आसान बनाता है, क्योंकि आपको Runtime
इंस्टेंस प्राप्त करने की आवश्यकता नहीं है।
- 1. जावा में सार कक्षाओं में रचनाकार क्यों हैं?
- 2. जावा क्लासलोडर और रनटाइम संकलन
- 3. जावा कक्षाओं में परिपत्र निर्भरता
- 4. LINQ तरीके एक्सटेंशन तरीके हैं?
- 5. जावा जेनेरिक प्रकार पैरामीटर रनटाइम पर क्यों संशोधित नहीं हैं?
- 6. स्थैतिक तरीके विधियां क्यों मौजूद हैं?
- 7. टाइपस्पेस 'सिस्टम' रनटाइम '
- 8. जावा जार में डुप्लिकेट कक्षाओं के प्रभाव क्या हैं?
- 9. रनटाइम (जावा)
- 10. जावा में स्टेटिक तरीके
- 11. कॉलिंग सिस्टम .Linq.Queryable विधियों रनटाइम
- 12. जावा में स्टेटिक प्रारंभकर्ता और स्टेटिक तरीके
- 13. जावा में कैकर्ट और जेएससीकेकर्ट दोनों फाइलें क्यों हैं?
- 14. जावा 1.5 में ServiceLoader के समान कुछ है?
- 15. % 20 और + http url में समान हैं?
- 16. प्रोग्राम और डेटा Prolog में समान हैं?
- 17. जावा में कक्षाओं की सूची
- 18. इनपुट और आउटपुट बॉड दरें हमेशा समान क्यों होती हैं?
- 19. इतने कम संस्करण फ़ाइल सिस्टम क्यों हैं?
- 20. अर्थशास्त्र और वाक्यविन्यास समान हैं?
- 21. जावा जेनरिक, सिंगलेट और स्थिर तरीके
- 22. समान कुशल तरीके से समान सरणी को कैसे जांचें?
- 23. नेस्टेड तरीके? वे उपयोगी क्यों हैं?
- 24. जावा में पैकेज निजी कक्षाओं के पेशेवरों और विपक्ष?
- 25. गणित वर्ग के तरीके क्यों स्थिर हैं?
- 26. जावा में सिस्टम ध्वनि
- 27. मुझे समान निर्भरता के लिए 'रनटाइम' और 'संकलन' दोनों निर्दिष्ट क्यों करना है?
- 28. क्यों संख्याफॉर्मेट एक्सेप्शन रनटाइम है?
- 29. जावा: सार कक्षाओं में अंतिम चर
- 30. जावा जेनेरिक रनटाइम पर कास्टिंग का उपयोग कब करते हैं?
मुझे समझ में नहीं आता कि आप क्या व्यक्त करना चाहते हैं। यदि जावा नहीं चाहते हैं कि डेवलपर्स सीधे रनटाइम के साथ खेलें, तो इसे सार्वजनिक रूप से निजी बनाना चाहिए। हकीकत में, हम रनटाइम के तरीकों को स्वतंत्र रूप से कॉल कर सकते हैं। – Chao
@ रिचर्ड द रनटाइम क्लास अंतर्निहित जेवीएम और ओएस पर्यावरण को उन तरीकों से उजागर करता है जो पोर्टेबल नहीं हो सकते हैं। सिस्टम क्लास JVM और OS के लगातार पोर्टेबल दृश्य का खुलासा करता है। सिस्टम सहित कई कक्षाओं के रूप में रनटाइम निजी नहीं हो सकता है, इसे कॉल करने की आवश्यकता है। ऐसे सीमित मामले भी हैं जहां विधियों को सीधे कॉल करना उचित हो सकता है। – BillThor
आपका मतलब है कि यदि संभव हो तो हमें हमेशा सिस्टम क्लास का उपयोग करना पसंद करना चाहिए? शॉर्टकट विधियां कहीं भी एक अच्छा विचार हो सकती हैं, लेकिन इस तरह का एपीआई डिज़ाइन वास्तव में भ्रमित है। – Chao