Menu

Qu'est-ce que Java ? Le langage, la JVM et où il s'exécute

Ce qu'est réellement Java, comment la JVM permet à un même programme compilé de s'exécuter partout, et les types de logiciels que l'on construit avec Java.

Cette page contient des éditeurs exécutables - modifiez, exécutez et voyez la sortie instantanément.

Java en une phrase

Java est un langage de programmation à typage statique et orienté objet qui se compile en bytecode et s'exécute sur la machine virtuelle Java (JVM). Ce seul choix de conception -compiler vers un format intermédiaire neutre, puis l'exécuter sur une machine virtuelle- est la raison pour laquelle le même programme Java compilé s'exécute sans modification sous Windows, macOS, Linux et au-delà.

Voici l'incontournable premier programme. Vous pouvez l'exécuter ici même :

Il y a ici plus de cérémonie que dans un langage de script, et c'est voulu : Java privilégie la structure explicite. Nous décortiquerons chaque élément de tout ceci au fil des prochaines pages.

Pourquoi la JVM est importante

La plupart des langages compilés transforment le code source directement en code machine pour un processeur et un système d'exploitation précis. Un programme compilé pour Windows ne s'exécutera pas sur un Mac. Java fait un détour :

  1. javac compile votre source .java en fichiers .class contenant du bytecode : des instructions pour une machine imaginaire, pas pour un vrai processeur.
  2. La JVM de votre plateforme lit ce bytecode et l'exécute, en le traduisant au fur et à mesure en instructions machine natives.

Comme chaque plateforme possède sa propre JVM mais qu'elles comprennent toutes le même bytecode, vous compilez une fois et exécutez le résultat partout où une JVM existe. C'est le célèbre slogan : écrire une fois, exécuter partout.

La JVM ne se contente pas d'interpréter aveuglément. Un compilateur à la volée (JIT) observe quel code s'exécute le plus, puis compile ces chemins chauds en code natif optimisé, si bien que les programmes Java de longue durée approchent la vitesse des langages entièrement compilés.

À typage statique et orienté objet

Deux propriétés façonnent l'allure et la sensation du code Java.

À typage statique signifie que chaque variable a un type connu à la compilation, et que le compilateur vérifie vos types avant même que le programme ne s'exécute :

count est un int pour toujours ; lui affecter "hello" ne compilerait pas. Cela attrape toute une catégorie d'erreurs tôt, au prix d'un peu plus de saisie au départ.

Orienté objet signifie que Java organise le code en classes : des plans qui regroupent les données et les méthodes qui agissent sur elles. Même le point d'entrée ci-dessus vit à l'intérieur d'une class Main. Presque tout ce que vous écrivez en Java vit à l'intérieur d'une classe.

À quoi sert Java

Java est l'un des langages les plus déployés au monde. Vous le trouverez dans :

  • Les systèmes backend et d'entreprise : banque, assurance, grands services web et tout ce qui doit fonctionner de manière fiable pendant des années.
  • Android : le langage d'origine de la plateforme, toujours central dans le runtime Android, même aux côtés de Kotlin.
  • Le big data : Hadoop, Spark, Kafka et une grande partie de l'écosystème d'ingénierie des données s'exécutent sur la JVM.
  • Le bureau et l'embarqué : des IDE (IntelliJ, Eclipse) aux terminaux de point de vente et cartes à puce.

Sa réputation repose sur la stabilité, la rétrocompatibilité et une vaste bibliothèque standard, plutôt que sur le fait d'être le langage le plus concis. Du code écrit pour Java il y a des années fonctionne en général encore aujourd'hui.

Java n'est pas JavaScript

Cela mérite d'être dit clairement, car les noms entretiennent une confusion sans fin : Java et JavaScript sont des langages différents et sans lien. Ils partagent quatre lettres pour des raisons historiques de marketing et rien d'autre qui compte. Java est compilé, à typage statique et s'exécute sur la JVM ; JavaScript est à typage dynamique et s'exécute dans les navigateurs et Node.js. Apprendre l'un ne vous enseigne pas l'autre.

Suivant : Installer Java

Pour écrire et exécuter Java sur votre propre machine, vous avez besoin d'un JDK (Java Development Kit) : le compilateur, plus la JVM, plus la bibliothèque standard. La page suivante détaille son installation et la façon de confirmer qu'il fonctionne.

Questions fréquentes

À quoi sert Java ?

Java fait tourner de grands systèmes côté serveur et d'entreprise, des applications Android (via le SDK Android et le runtime partagé avec Kotlin), des outils de big data comme Hadoop et Spark, ainsi qu'une multitude d'applications de bureau et embarquées. Ses atouts sont la stabilité, une immense bibliothèque standard et la JVM, qui exécute le même programme compilé sur n'importe quel système d'exploitation.

Java est-il compilé ou interprété ?

Les deux. Le compilateur Java (javac) transforme votre code source en bytecode indépendant de la plateforme, puis la JVM exécute ce bytecode : elle l'interprète d'abord, puis compile les chemins les plus sollicités en code machine natif à l'aide d'un compilateur à la volée (JIT). Java est donc compilé en bytecode, puis interprété et compilé en JIT à l'exécution.

Java est-il la même chose que JavaScript ?

Non : ce sont des langages sans lien qui partagent un nom pour des raisons historiques de marketing. Java est un langage compilé et à typage statique qui s'exécute sur la JVM ; JavaScript est un langage à typage dynamique qui s'exécute dans les navigateurs et Node.js. Connaître l'un ne veut pas dire que vous connaissez l'autre.

Coddy programming languages illustration

Apprendre à coder avec Coddy

COMMENCER