मैं एक कठिन समय javac
के कोड उन्मूलन क्षमताओं के बारे में जानकारी पाने आ रही हैं:javac कोड उन्मूलन क्षमताओं
मैंने पढ़ा है कि यदि आप निम्नलिखित की तरह कुछ है, if
-statement सफाया हो जाएगा:
static final boolean DEBUG = false;
if (DEBUG) System.out.println("Hello World!"); // will be removed
लेकिन यह कैसे इस बारे में, उदाहरण के लिए:
static final int VALUE = 3;
if (VALUE > 9) System.out.println("VALUE > 9 ???"); // will this be removed?
या थी रों:
static final SomeEnum VALUE = SomeEnum.FOO;
if (VALUE==SomeEnum.BAR) System.out.println("Bar???"); // will this be removed?
यह बहुत मुश्किल/असंभव है के बाद से सभी मृत कोड (शायद हॉल्टिंग समस्या के समान) को खोजने के लिए एक कार्यक्रम का विश्लेषण करने, मैं कल्पना होगा केवल कुछ अच्छी तरह से परिभाषित निर्माणों (पहले की तरह देखते हैं कि ऊपर उदाहरण), जो javac
भरोसेमंद पहचान और हटा देगा। क्या इन संरचनाओं की एक व्यापक सूची है?
क्या आपने इसे देखने की कोशिश की है? 'javap -c' इसे बहुत स्पष्ट कर देगा ... –
@ जोनस्केट मैंने अभी तक नहीं किया है, क्योंकि मैं इन संरचनाओं की एक सूची ढूंढने की उम्मीद कर रहा था, इसलिए मुझे उन्हें एक-एक करके बाहर करने की ज़रूरत नहीं है। इसके अलावा, मैं शायद सभी संभावनाओं के साथ आने में सक्षम नहीं हूं ... लेकिन, ऊपर दिखाए गए दो उदाहरणों के लिए, आप सही हैं, मैं जांच सकता हूं ... –
रिकॉर्ड के लिए, पहले दो समाप्त हो गए हैं तीसरा नहीं है। – assylias