Die Übersetzung findet in Java statt, weil Java eine Hochsprache ist, die von einem Computer nicht ausgeführt werden kann, bis sie in eine Niedrigsprache übersetzt wird (diese Sprachen werden manchmal als "Maschinensprachen" oder "Assemblysprachen" bezeichnet).
Wie auch immer, die Übersetzung in Java (und in den meisten Sprachen) geschieht auf zwei Arten: Kompilieren und Interpretieren.
Das Seltsame an Java ist, dass es sowohl kompiliert als auch interpretiert werden kann. Dies liegt daran, dass der Java-Compiler Java-Bytecode generiert, anstatt Java-Programme in die oben erwähnte Art von Low-Level-Maschinensprache übersetzen zu müssen.
Dieser Bytecode ähnelt der Maschinensprache (damit eine Maschine ihn interpretieren kann), wird aber auch als portabel angesehen (eine Qualität einer Hochsprache), was bedeutet, dass der Bytecode automatisch übertragen und auf einen anderen Computer interpretiert werden kann.
Das ist ein kurzer Überblick darüber, wie die Übersetzung in Java funktioniert!