Java est un ensemble de logiciels et de spécifications informatiques qui fournit une plateforme logicielle pour le développement et le déploiement d'applications dans un environnement informatique multiplateforme . Java est utilisé sur une grande variété de plateformes , des systèmes embarqués et téléphones mobiles aux serveurs d'entreprise et supercalculateurs . Les applets Java , moins courantes que les applications Java autonomes, étaient généralement exécutées dans des environnements sécurisés et isolés (sandbox) afin de fournir de nombreuses fonctionnalités des applications natives grâce à leur intégration dans des pages HTML .
L'écriture en langage Java est la principale méthode pour produire du code destiné à être déployé sous forme de bytecode dans une machine virtuelle Java (JVM). Des compilateurs de bytecode sont également disponibles pour d'autres langages, notamment Ada , JavaScript , Kotlin (langage privilégié de Google pour Android), Python et Ruby . De plus, plusieurs langages ont été conçus pour s'exécuter nativement sur la JVM, tels que Clojure , Groovy et Scala . La syntaxe de Java emprunte fortement à C et C++ , mais ses fonctionnalités orientées objet sont inspirées de Smalltalk et d'Objective-C . Java évite certaines constructions de bas niveau, comme les pointeurs , et possède un modèle mémoire très simple où les objets sont alloués sur le tas (bien que certaines implémentations, par exemple toutes celles actuellement prises en charge par Oracle, puissent utiliser l'optimisation d'analyse d'échappement pour allouer la mémoire sur la pile ) et toutes les variables de type objet sont des références . La gestion de la mémoire est assurée par le ramasse-miettes automatique intégré à la JVM.
Java 26 , sortie en mars 2026.La dernière version à support à long terme (LTS), Java 25, sortie en septembre 2025, est l'une des rares versions LTS encore prises en charge, jusqu'à Java 8 LTS. Le support étendu d'Oracle pour Java 6 a pris fin en décembre 2018.
En tant que plateforme open source, Java compte de nombreux distributeurs, dont Amazon , IBM , Azul Systems et AdoptOpenJDK . Parmi les distributions disponibles, on trouve Amazon Corretto, Zulu, AdoptOpenJDK et Liberica. Oracle distribue Java 8 et propose également Java 11, deux versions LTS actuellement prises en charge. Oracle (et d'autres) recommandent fortement de désinstaller les versions de Java antérieures à Java 8 en raison de risques importants liés à des failles de sécurité non résolues
Étant donné que Java 9 (ainsi que les versions 10, 12–16, 18–20 et 22–24) ne sont plus prises en charge, Oracle conseille à ses utilisateurs de « passer immédiatement » à une version prise en charge.
Oracle a publié la dernière mise à jour publique gratuite pour un usage commercial de l' ancienne version Java 8 LTS en janvier 2019 et continuera à prendre en charge Java 8 avec des mises à jour publiques pour un usage personnel indéfiniment.
Plate-forme
La plateforme Java est une suite de programmes facilitant le développement et l'exécution de programmes écrits en langage Java . Elle comprend un moteur d'exécution (appelé machine virtuelle ), un compilateur et un ensemble de bibliothèques ; des serveurs supplémentaires et des bibliothèques alternatives peuvent également être nécessaires selon les besoins. Les plateformes Java ont été implémentées pour une grande variété de matériels et de systèmes d'exploitation afin de garantir l'exécution identique des programmes Java sur chacun d'eux.
La plateforme Java se compose de plusieurs programmes, chacun fournissant une partie de ses fonctionnalités globales. Par exemple, le compilateur Java , qui convertit le code source Java en bytecode Java (un langage intermédiaire pour la JVM), est fourni avec le kit de développement Java (JDK). L' environnement d'exécution Java (JRE), qui complète la JVM avec un compilateur à la volée (JIT) , convertit le bytecode intermédiaire en code machine natif à la volée. La plateforme Java inclut également un vaste ensemble de bibliothèques.
Les composants essentiels de la plateforme sont le compilateur du langage Java, les bibliothèques et l'environnement d'exécution dans lequel le bytecode intermédiaire Java s'exécute conformément aux règles définies dans la spécification de la machine virtuelle.
Domaines d'application
Les différentes plateformes ciblent différentes catégories d'appareils et de domaines d'application :
- Java Card : Une technologie qui permet d'exécuter en toute sécurité de petites applications Java ( applets ) sur des cartes à puce et autres dispositifs à faible mémoire.
- Java ME (Micro Edition) : spécifie différents ensembles de bibliothèques (appelés profils) pour les appareils aux capacités de stockage, d’affichage et d’alimentation limitées. Il est souvent utilisé pour développer des applications pour appareils mobiles, assistants numériques personnels (PDA), décodeurs TV et imprimantes.
- Java SE (Standard Edition) : Pour une utilisation générale sur les PC de bureau, les serveurs et les appareils similaires.
- Jakarta EE (Enterprise Edition) : Java SE plus diverses API utiles pour les applications d'entreprise client-serveur multi-niveaux .
Java SE
La plateforme utilise le langage de programmation Java et fait partie de la famille des plateformes logicielles Java. Java SE définit un ensemble d' API génériques , telles que les API Java pour la bibliothèque de classes Java , et inclut également la spécification du langage Java et la spécification de la machine virtuelle Java . OpenJDK est l' implémentation de référence officielle depuis la version 7.
Jakarta EE
machine virtuelle Java
L'utilisation du bytecode comme langage intermédiaire permet aux programmes Java de s'exécuter sur toute plateforme disposant d'une machine virtuelle. Grâce au compilateur JIT, les applications Java, après un court délai de chargement et une fois « initialisées » par une compilation JIT complète ou quasi complète, s'exécutent généralement aussi rapidement que les programmes natifs. Depuis la version 1.2 du JRE, l'implémentation JVM de Sun intègre un compilateur JIT au lieu d'un interpréteur.
Bien que les programmes Java soient multiplateformes ou indépendants de la plateforme, le code des machines virtuelles Java (JVM) qui exécutent ces programmes ne l'est pas. Chaque plateforme d'exploitation prise en charge possède sa propre JVM.
Kit de développement Java
Le JDK est principalement conçu pour communiquer avec l' environnement d'exécution Java (JRE), mais il peut être remplacé par d'autres langages basés sur le JDK, capables de communiquer à la fois avec le JRE et la JVM . De plus, le bytecode Java peut être compilé statiquement en code natif directement avec une JVM, sans qu'il soit nécessaire que l'environnement d'exécution Java soit exécuté dynamiquement.
Il implémente la spécification du langage Java (JLS) et la spécification de la machine virtuelle Java (JVMS), et fournit l'édition standard (SE) de l' interface de programmation d'applications Java (API). Il est dérivé d' OpenJDK, un projet communautaire géré par Oracle. Il fournit les logiciels nécessaires au développement d'applications Java. Parmi ces logiciels figurent la machine virtuelle Java, un compilateur, des outils de surveillance des performances, un débogueur et d'autres utilitaires qu'Oracle juge utiles aux programmeurs Java.
Oracle distribue la version actuelle du logiciel sous la licence Oracle No-Fee Terms and Conditions (NFTC). Oracle propose des binaires pour l' architecture x86-64 sous Windows , macOS et Linux , ainsi que pour l' architecture aarch64 sous macOS et Linux. Les versions précédentes étaient compatibles avec le système d'exploitation Oracle Solaris et l'architecture SPARC .
L'implémentation principale du JVMS d'Oracle est connue sous le nom de HotSpot .



