मान लीजिए कि मेरे पास 500 एमबी से अधिक मेरे कार्यक्रम से जुड़ी 500 जार फ़ाइलें हैं (सभी जारों का आकार, प्रत्येक नहीं) और मेरा प्रोग्राम उनमें से एक में स्थित कक्षा में कॉल करता है। जावा कक्षा के लिए जार के माध्यम से कैसे खोज करता है, और इसकी दक्षता क्या है? पर)? हे (लॉग (एन))?जावा कक्षाओं के लिए जार फ़ाइलों को कुशलता से कैसे खोजता है?
उत्तर
जावा पूरी तरह से योग्य नाम पर सटीक मिलान के लिए जार की आंतरिक निर्देशिका संरचना में दिखता है। यह लग रहा है; यह खोज नहीं करता है। यदि आपके पास क्लासपाथ पर 500 जार फ़ाइलें हैं, तो जावा उन्हें एक निश्चित क्रम में एक-एक करके देखेगा जब तक कि यह कोई मिलान न मिले। यदि किसी दिए गए वर्ग वाले जार में आखिरी है, तो जावा 500 जार फ़ाइलों को देखेगा। तो मुझे लगता है कि यह ओ (एन) है।
अद्यतन: व्यवहार ऊपर वर्णित डिफ़ॉल्ट व्यवहार है। हालांकि, जैसा कि हसन ने इंगित किया था, इसे रूट जार फ़ाइल में JarIndex प्रदान करके अनुकूलित किया जा सकता है, जिसे क्लासलोडर को पैकेज नाम पर एक साधारण लुकअप के साथ उचित जार फ़ाइल ढूंढने की अनुमति मिलती है।
डिफ़ॉल्ट रूप से यह रैखिक होता था; हालांकि, JDK 1.3 के बाद से एक जेएआर इंडेक्स को एप्लिकेशन की पहली जेएआर फ़ाइल में एम्बेड किया जा सकता है।
इसका मतलब है कि यदि सूचकांक जेएआर फ़ाइल में एम्बेड किया गया है तो क्लास लोडर आवेदन से संबंधित कई जेएआर फाइलों पर वितरित सभी वर्गों को कुशलतापूर्वक पा सकता है।
जेएआर इंडेक्सिंग पर SUN Resource से लिंक करें। नोट: गैर-वर्ग संसाधनों को कवर नहीं किया जा रहा है।
क्या आपको विश्वास है कि सूचकांक का उपयोग आम है? मुझे लगता है कि अभी भी रैखिक व्यवहार डिफ़ॉल्ट है, आपको एक इंडेक्स जोड़ने की जरूरत है, और कई लोग नहीं करते हैं। – djna
सभी ज़िपों में फ़ाइल के अंत में एक इंडेक्स है, इसलिए इससे कोई फर्क नहीं पड़ता है। –
हम्म, ऐसा लगता है कि एएनटी डिफ़ॉल्ट http://ant.apache.org/manual/CoreTasks/jar.html जेएआर फाइलों में इंडेक्स पीढ़ी के लिए झूठी है। मुझे आश्चर्य है कि आईडीई क्या करता है? –
- 1. जावा की JVM अनजिप जार फ़ाइलों को कब करता है?
- 2. जार में कक्षाओं के लिए प्रतिस्थापन प्रणाली क्लासलोडर जार
- 3. सी # के जार फ़ाइलों के बराबर है?
- 4. वितरण के लिए जावा जार फ़ाइलों की सुरक्षा
- 5. लिनक्स में, जावा जार फ़ाइल को बाहरी जार फ़ाइलों के साथ कैसे निष्पादित करें?
- 6. .jar फ़ाइलों से कक्षाओं का उपयोग कैसे करें?
- 7. जावा जार में डुप्लिकेट कक्षाओं के प्रभाव क्या हैं?
- 8. बाहरी जार फ़ाइलों को आयात करना
- 9. जार फ़ाइलों को स्वचालित रूप से अपडेट करें
- 10. जावा वेब स्टार्ट/जेएनएलपी अनुप्रयोगों के लिए जार फ़ाइलों को कैश किया गया है?
- 11. फ़ाइल प्रबंधन संचालन करते समय विजुअल स्टूडियो txt फ़ाइलों के लिए कहां खोजता है?
- 12. डेल्फी से जावा जार तक पहुंच
- 13. सी #: डीवीडी पर फ़ाइलों को बहुत अधिक कुशलता से फिट करने के लिए कोड
- 14. अंदर जार फ़ाइलों से जेएसपीएस पढ़ने के लिए अपाचे टाइल्स को कॉन्फ़िगर कैसे करें?
- 15. क्या कोई हैडोप मानचित्र के लिए कैस्केडिंग खोजता है उपयोगी?
- 16. जावा में प्रोग्रामिंग रूप से जार फ़ाइलों को कैसे हस्ताक्षर करते हैं?
- 17. पायथन में, मैं स्क्रिप्ट फ़ाइलों के बीच संदर्भों को कुशलता से प्रबंधित कैसे कर सकता हूं?
- 18. जार को कैसे खोजें, जिसमें जावा क्लास
- 19. findbugs से गैर-जावा कक्षाओं को छिपाना
- 20. जावा जार
- 21. ग्रहण में जार या युद्ध से फ़ाइलों को बाहर निकालें
- 22. जावा जार
- 23. जावा फ़ाइल के साथ जार फ़ाइलों को कैसे शामिल करें और कमांड प्रॉम्प्ट में संकलित करें
- 24. विरासत कोड को प्रभावी ढंग से और कुशलता से कैसे दोबारा सुधारें?
- 25. जावा फ़ाइलों को तैनात करना
- 26. ग्रहण स्वचालित रूप से jsp फ़ाइलों में कक्षाओं को आयात करता है
- 27. सी # कुशलता से
- 28. जावा लाइब्रेरी कक्षाओं के लिए स्रोत कोड
- 29. मैं निर्देशिका में फ़ाइलों की संख्या को कुशलता से कैसे प्राप्त कर सकता हूं?
- 30. अजगर के साथ संपादित करें जार फ़ाइलों
जावा 7 में, वे ओएसजीआई – notnoop
(-1) के समान मॉड्यूल सिस्टम का समर्थन करके इसे पुराना करने का प्रयास कर रहे हैं, जो जानकारी पुरानी है। –
@ हसन। इंडेक्स वैकल्पिक हैं, डिफ़ॉल्ट वास्तव में रैखिक है: नई कक्षा लोडिंग योजना वर्तमान विस्तार तंत्र के शीर्ष पर विकसित अनुप्रयोगों के साथ पूरी तरह पिछड़ा संगत है। जब क्लास लोडर पहली जार फ़ाइल लोड करता है और INDEX.LIST फ़ाइल मेटा-आईएनएफ निर्देशिका में पाई जाती है, तो यह इंडेक्स हैश टेबल का निर्माण करेगी और एक्सटेंशन के लिए नई लोडिंग योजना का उपयोग करेगी। अन्यथा, वर्ग लोडर मूल रैखिक खोज एल्गोरिदम का उपयोग करेगा। – djna