Le principe fondamental de Java est la portabilité. Le code source n'est pas compilé en code machine pour un processeur spécifique ; au lieu de cela, il est compilé en bytecode – une représentation intermédiaire. Le bytecode est exécuté par la JVM, qui est disponible sur toutes les principales plates-formes.
L'exécution d'un programme Java comporte trois étapes. Vous écrivez d’abord le code source dans des fichiers .java. Ensuite, le compilateur javac le convertit en bytecode (fichiers .class). Enfin, la JVM interprète ou compile JIT le bytecode en instructions machine natives.
Trois termes sont souvent confondus, mais ils sont imbriqués : JVM est le cœur qui exécute le bytecode ; JRE ajoute les bibliothèques standards ; JDK ajoute les outils de compilateur et de développement en plus.
Depuis 2017, Java suit une cadence de publication prévisible : une nouvelle version tous les 6 mois. Certaines versions sont désignées LTS (Long-Term Support) et reçoivent des mises à jour de sécurité pendant plusieurs années.
Java est présent dans pratiquement tous les domaines du développement logiciel, des systèmes bancaires et applications Android aux pipelines Big Data et aux plateformes cloud.
Java possède plusieurs caractéristiques qui le distinguent. Un typage statique fort élimine toute une classe de bugs au moment de la compilation. Le Garbage Collector libère les développeurs de la gestion manuelle de la mémoire. La prise en charge multithread intégrée et le vaste écosystème Maven Central complètent le tableau.