জাভা সংকলন এবং ব্যাখ্যা উভয়ই করে,
জাভাতে, প্রোগ্রামগুলি এক্সিকিউটেবল ফাইলগুলিতে সংকলিত হয় না ; এগুলি বাইটোকোডে সংকলিত হয় (যেমন পূর্বে আলোচনা হয়েছে), যা জেভিএম (জাভা ভার্চুয়াল মেশিন) তারপরে রানটাইমে ব্যাখ্যা / সম্পাদন করে। জাভা সোর্স কোডটি বাইকোডে সংকলিত হয় যখন আমরা জাভাক সংকলক ব্যবহার করি। বাইকোড ডিস্কে ফাইল এক্সটেনশন। ক্লাসের সাহায্যে সংরক্ষিত হয় ।
যখন প্রোগ্রামটি চালানো হবে, তখন বাইটকোড রূপান্তরিত হবে বাইটোকোড রূপান্তরিত হতে পারে, ইন-টাইম (জেআইটি) সংকলকটি ব্যবহার করে। ফলাফলটি মেশিন কোড যা পরে মেমরিকে খাওয়ানো হয় এবং কার্যকর করা হয়।
জাভাক হ'ল জাভা সংকলক যা জাভা কোডটি বাইটকোডে সংকলন করে। জেভিএম হ'ল জাভা ভার্চুয়াল মেশিন যা বাইটকোডকে নেটিভ মেশিন কোডে চালিত করে / অনুবাদ করে / অনুবাদ করে। জাভাতে যদিও এটি ব্যাখ্যামূলক ভাষা হিসাবে বিবেচিত হয়, বাইটকোড জেভিএম এ থাকাকালীন এটি জেআইটি (জাস্ট-ইন-টাইম) সংকলন ব্যবহার করতে পারে। জেআইটি সংকলকটি অনেক বিভাগে বাইকোডগুলি পড়ে (বা সম্পূর্ণ, খুব কমই) এবং তাদের মেশিন কোডে গতিশীলভাবে সংকলন করে যাতে প্রোগ্রামটি দ্রুত চলতে পারে, এবং তারপরে পুনরায় সংকলনের প্রয়োজন ছাড়াই ক্যাশে এবং পুনরায় ব্যবহার করা যেতে পারে। সুতরাং জেআইটি সংকলন ব্যাখ্যার নমনীয়তার সাথে সংকলিত কোডের গতি একত্রিত করে।
একটি অনুবাদিত ভাষা হ'ল এক প্রকার প্রোগ্রামিং ল্যাঙ্গুয়েজ যার জন্য এর বেশিরভাগ বাস্তবায়ন মেশিন-ভাষা নির্দেশাবলীতে কোনও প্রোগ্রাম সংকলন না করে সরাসরি এবং অবাধে নির্দেশনা কার্যকর করে। দোভাষা সরাসরি প্রোগ্রামটি সম্পাদন করে, প্রতিটি বিবৃতি ইতিমধ্যে মেশিন কোডে সংকলিত এক বা একাধিক সাবরুটাইনগুলির অনুক্রমে অনুবাদ করে।
একটি কম্পাইল করা ভাষা একটি প্রোগ্রামিং ভাষা যার বাস্তবায়নের সাধারণত কম্পাইলার (অনুবাদক উৎস কোড থেকে মেশিন কোড উৎপন্ন), এবং দোভাষী নয় (ধাপ ধাপে উত্স কোডের নির্বাহক, যেখানে কোন প্রাক রানটাইম অনুবাদ সঞ্চালিত) হল
জাভা-র মতো আধুনিক প্রোগ্রামিং ল্যাঙ্গুয়েজ বাস্তবায়নে প্ল্যাটফর্মের জন্য উভয় বিকল্প সরবরাহ করা ক্রমশ জনপ্রিয়।