Java est-il un langage de programmation compilé ou interprété?

Dans le passé, j'ai utilisé C ++ comme langage de programmation. Je sais que le code écrit en C ++ passe par un processus de compilation jusqu'à ce qu'il devienne un code objet "code machine". J'aimerais savoir comment Java fonctionne à cet égard. Comment l'utilisateur écrit-il le code Java exécuté...