آیا جاوا یک زبان interpreted حساب میشه
هم آره هم نه
کامپایل شدن جاوا و نظایر اون دو مرحله داره

  1. میدونین که هر نوع CPU زبان ماشین و اسمبلی مخصوص خودشو داره ( مثلا Intel یه مدل AMD یه مدل ARM یه مدل و حتی بین معماری های مختلف اینتل ، مثلا X86 یا X64 ، هم تفاوت وجود داره ) حالا تصور کنین ما یه جور اسمبلی داریم ( در مورد جاوا ByteCode و C#‎ هم IL ) که برناممون رو فقط به اون کامپایل میکنیم . دقت کنین هیچ CPU واقعی این کدها رو نمیفهمه !
  2. در هنگام اجرا این کد اسمبلی حاصل از برنامه ما تحویل به یه برنامه ای داده میشن که به طور شبیه سازی شده اونها رو اجری میکنن ( در مورد Java ، JVM و در مورد .Net ، CLR) ، در واقع یعنی یه جورایی تفسیر میکنن ! حالا این وسط برنامه های مذکور یک کلک هایی هم میزنن یعنی به هر بخشی از برنامه‌ی شما که برای بار اوّل اجرا میشه رو به کد Native کامپایل میکنن و برای بار دوّم دیگه تفسیری در کار نیست !

امیدوارم مقصود رو به درستی رسونده باشم
اگر میخواهید جاوا کار کنین به نظر من اینجا شروع خوبیه
توضیحات من رو با عکس و یه متن درست و حسابی و مبسوط توضیح داده


چون برای اجرا نیاز به java runtime داره و آیا کدهای جاوا همانند C#‎‎ آخر سر تبدیل به فابل اجرایی میشن یا نه؟

کدهای Java و C#‎ تقریبا مثل هم پردازش میشن و C#‎ هم به IL کامپایل میشه و CLR اجراش میکنه و این بحثایی که بالا گفتم براش رخ میده