मैं वास्तव में निम्नलिखित बातक्या JVM का प्रयोग होता है, तो JIT मशीन के निर्देशों के अनुरूप काम बाईटकोड रूपांतरण
पहले मैं जानता हूँ कि समझने के लिए संघर्ष कर रहा है:
जब एक जावा प्रोग्राम संकलित किया गया है .class
फ़ाइल उत्पन्न हो जाएगा । उस कोड में बाइट्स के रूप में है। फिर JVM
उस बाइट कोड को मशीन समझने योग्य प्रारूप में अनुवादित करेगा।
अब मैं देख रहा हूँ one of the questions in SO
एक में बस-इन-समय (JIT) संकलक रन-टाइम दुभाषिया की एक विशेषता है, कि बजाय बाईटकोड हर बार एक विधि शुरू हो जाती है की व्याख्या की, होगा मशीन कोड में बाईटकोड संकलन
तो यहाँ JIT मशीन निर्देशों के बाईटकोड परिवर्तित चल मशीन के निर्देश। फिर जेवीएम का उपयोग क्या है। हम इसे जेआईटी के साथ करने में सक्षम हैं। मेरे ज्ञान में जेआईटी केवल जेवीएम के प्रदर्शन में सुधार के लिए है।
अग्रिम धन्यवाद ..
लेकिन मुझे लगता है कि जेआईटी एक बार पूरी कक्षा फाइल को संकलित करता है। लेकिन आपके कथन में जेवीएम संकलन कर रहा है। कृपया – Anusha
@Anusha yah समझाएं ... JVM संकलन भाग [रेखा से रेखा] जावा के लिए मूल दुभाषिया है .. लेकिन जेआईटी एक वैकल्पिक है, जो संकलित करता है, सबकुछ सिर्फ एक आवश्यक तरीकों/कार्यों में नहीं। किसी मामले के लिए विचार करें: जेआईटी कंपाइलर जावा सीमा परिस्थितियों जैसे नल पॉइंटर या सरणी सीमाओं के बाहर सरणी की जांच नहीं करता है। एकमात्र तरीका जेआईटी कंपाइलर जानता है कि इसमें एक शून्य सूचक अपवाद है ऑपरेटिंग सिस्टम द्वारा उठाए गए सिग्नल द्वारा। –
यह सिर्फ गलत है। जावा जावा कंपाइलर जावा स्रोत कोड को पार करता है और इसे जावा बाइटकोड (मशीन स्वतंत्र), आपकी .class फ़ाइलों में संकलित करता है। जेआईटी कंपाइलर संकलित करता है कि मूल मशीन कोड (सीपीयू आर्क विशिष्ट) के लिए बाइटकोड। जेआईटी आउटपुट मशीन कोड अभी भी सीमा जांच और जावा अपवाद हैंडलिंग करता है। – arjunyg