2012-03-07 14 views
9

मेरे पास कोड बेस है और कुछ विधियों का कभी भी उपयोग नहीं किया जाता है। javac कक्षा फ़ाइल से अप्रयुक्त विधियों को हटा दें?क्या javac उन तरीकों को हटा देता है जिन्हें कोड में संदर्भित नहीं किया जाता है?

+1

यदि विधियां 'सार्वजनिक' नहीं हैं, तो मुझे उम्मीद करनी चाहिए। –

+0

@ लार्समैन: यह 'सार्वजनिक' के लिए क्यों विशेष है? क्या ऐसा इसलिए है क्योंकि कुछ अन्य कोड उनका उपयोग कर रहे हैं? क्या आप विस्तार से समझा सकते हैं? – noMAD

उत्तर

6

प्रश्न: मैं जानना चाहता हूं कि मेरे पास कोड आधार है और कुछ विधियों का कभी भी उपयोग नहीं किया जाता है। क्या javac कक्षा फ़ाइल से अप्रयुक्त विधियों को हटा देता है?

ए: नहीं। कक्षा में क्या होता है, कक्षा फ़ाइल में रहता है।

... लेकिन ...

JVM भार केवल क्या स्मृति में आवश्यक है। अप्रयुक्त वर्गों पर रैम "बर्बाद" नहीं है।

4

नहीं, ऐसा नहीं है। इसे सत्यापित करने के लिए, आप

javap -c foo.bar.MyClass 

चला सकते हैं और वहां सभी कोड देख सकते हैं। आप इसे प्रतिबिंब के माध्यम से भी एक्सेस कर सकते हैं (माना जाता है कि आप उचित अनुमतियों के साथ चल रहे हैं)।

3

नहीं, ऐसा नहीं है और यह नहीं कर सकता है। इस बारे में सोचें कि क्या होगा यदि संकलक ने पुस्तकालय संकलित किया था। पुस्तकालय चाहता है कि सभी विधियों उपयोगकर्ताओं के लिए निर्यात करें, लेकिन स्वयं का उपयोग नहीं किया जाएगा। और लाइब्रेरी और आपके कोड की किसी चीज़ के बीच अंतर करने के लिए जावा में कोई रास्ता नहीं है।

संबंधित मुद्दे

 संबंधित मुद्दे