Java hem derleme hem de yorumlama yapar,
Java'da programlar yürütülebilir dosyalara derlenmez ; onlar olan bayt koduna derlenmiş (daha önce anlatıldığı gibi), hangi JVM (Java Virtual Machine) zamanında yorumlayıp / yürütür. Java derleyicisini kullandığımızda Java kaynak kodu bayt koduna derlenir. Bayt kodu, .class dosya uzantısına sahip diske kaydedilir .
Program çalıştırılacak olduğunda, dönüştürülür bytekod bayt kodu olabilir sadece zamanında (tam zamanında) derleyici kullanılarak dönüştürülebilir. Sonuç, daha sonra belleğe beslenen ve yürütülen makine kodudur.
Javac , Java kodunu Bytecode olarak derleyen Java Derleyicisidir . JVM, Bytecode'u Yerel Makine Koduna dönüştüren / çalıştıran / yorumlayan Java Sanal Makinesi'dir. Java'da yorumlanmış bir dil olarak kabul edilmesine rağmen, bayt kodu JVM'deyken JIT (Tam Zamanında) derlemesini kullanabilir. JIT derleyicisi, birçok bölümdeki (veya tam olarak, nadiren) bayt kodlarını okur ve programın daha hızlı çalışabilmesi için dinamik olarak makine koduna derler ve daha sonra yeniden derlenmeye gerek kalmadan önbelleğe alınır ve yeniden kullanılır. Böylece JIT derlemesi, derlenmiş kodun hızını yorumlama esnekliği ile birleştirir.
Bir yorumlanmış dil önceden makine dili talimatları içine bir program derleme olmadan, kendi uygulamalarının çoğu doğrudan ve özgürce komutlarını yerine hangi dili programlama türüdür. Yorumlayıcı programı doğrudan yürütür ve her bir ifadeyi makine kodunda derlenmiş olan bir veya daha fazla alt rutinin bir sırasına dönüştürür.
Bir Derlenmiş dil (ön-çalışma zamanı için gerçekleşir kaynak kodu adım adım uygulayıcıları) olan uygulamaları, tipik olarak derleyici (kaynak kodundan makine kodu üretmek çevirmen), ve sözlü olan bir programlama dili
Java gibi modern programlama dili uygulamalarında, bir platformun her iki seçeneği de sunması giderek daha popüler hale gelmektedir.