1.
C'est du compilé, mais pas du compilé en langage machine.
La compilation, c'est le passage d'un fichier source écrit dans un langage à un autre fichier écrit dans un autre langage. La plupart de compilateurs compilent, au final, en langage machine.
Un compilateur peut aussi simplement retranscrire un source C++ en un source C.
En Java, la compilation ne se fait pas en langage machine, mais ce qu'on appelle du "byte code" qui est un codage particulier utilisé par la JVM (machine virtuelle Java). Donc, en Java, on
compile en byte code.
La JVM
interprète le byte code pour exécuter les commandes (en langage machine).
2.
les fichiers .jar sont en fait des fichiers zip qui contiennent plusieurs fichiers .class, donc c'est finalement la même chose