Перевод происходит в Java, потому что Java - это язык высокого уровня, который не может быть выполнен компьютером, пока он не переведен на язык низкого уровня (эти языки иногда называют «машинными языками» или «языками ассемблера»).
В любом случае, перевод в Java (и в большинстве языков) происходит двумя способами: компиляция и интерпретация.
Самое странное в Java заключается в том, что ее можно как компилировать, так и интерпретировать. Это связано с тем, что компилятор Java генерирует байтовый код Java вместо того, чтобы переводить программы Java в тип машинного языка нижнего уровня, о котором я упоминал выше.
Этот байтовый код похож на машинный язык (поэтому машина может его интерпретировать), но он также считается переносимым (качество языка высокого уровня), что означает, что байтовый код может автоматически передаваться и интерпретироваться на другой машине.
Это краткий обзор того, как работает перевод на Java!