Java est un langage de programmation orienté objet, développé par Sun Microsystems en 1995 (racheté par Oracle en 2010).
Conçu sur le principe « Write Once, Run Anywhere » (WORA), il repose sur une machine virtuelle (JVM) qui permet d’exécuter le même bytecode sur n’importe quel système d’exploitation.
Java n’est pas qu’un langage : c’est un écosystème complet comprenant :
- Un langage fortement typé,
- Une vaste bibliothèque standard (Java Class Library),
- Des outils de build (Maven, Gradle),
- Des frameworks (Spring, Hibernate),
- Et des environnements d’exécution (JVM, GraalVM, ART).
Java et Android
- Langage historique d’Android : depuis la création de la plateforme en 2008 jusqu’à l’adoption officielle de Kotlin comme langage privilégié par Google en 2017, Java était le langage principal du développement Android.
- Toujours largement utilisé : la majorité des applications existantes, bibliothèques natives et SDK Android sont écrits en Java.
- Exécution sur Android : Le code Java n’est pas exécuté sur la JVM classique, mais compilé en bytecode Dalvik (jusqu’à Android 4.4), puis en bytecode DEX, exécuté par la machine virtuelle ART (Android Runtime) depuis Android 5.0 (Lollipop).
ART utilise une compilation AOT (Ahead-Of-Time) au moment de l’installation pour améliorer les performances.
Évolution des versions
- Modèle de publication : depuis 2018, Java suit un cycle de versioning rapide : une nouvelle version majeure tous les 6 mois (mars/septembre).
- Versions LTS (Long-Term Support) : toutes les 2 à 3 ans (ex. : Java 11, 17, 21). Ce sont les seules recommandées en production.
- Java 22 (mars 2024) : version non-LTS, expérimentale, destinée aux développeurs avancés. Introduit des améliorations sur :
- Les expressions switch,
- La gestion mémoire native (Project Panama),
- L’exécution concurrente.
- Java 21 (septembre 2023) : version LTS actuelle en 2026, utilisée dans les serveurs, outils backend et certains projets Android modernes.
Sur Android, l’API Java disponible dépend du niveau d’API ciblé (ex. : Android 14 = API 34), et ne suit pas les dernières versions de Java.
En 2026, Android supporte officiellement des fonctionnalités équivalentes à Java 11–17, selon les outils de compilation (D8/R8) et la configuration de compileOptions dans Gradle.
Forces de Java
- Stabilité : des décennies de recul, très peu de ruptures majeures.
- Documentation abondante : millions de tutoriels, forums, livres.
- Écosystème riche : bibliothèques pour tout (réseaux, crypto, parsing, etc.).
- Interopérabilité avec Kotlin : les deux langages coexistent parfaitement dans un même projet Android.
Limites
- Verbeux : nécessite plus de lignes que Kotlin ou Dart pour les mêmes fonctionnalités.
- Moins moderne : absence native de null-safety, pattern matching limité (avant Java 17+).
- Mémoire : empreinte plus lourde que les langages natifs (C++, Rust).
Écosystème Java en 2026
| Domaine | Usage |
|---|---|
| Android | Développement legacy, bibliothèques SDK, maintenance |
| Backend | Spring Boot, microservices, APIs REST |
| Big Data | Hadoop, Spark, Kafka |
| Desktop | Applications JavaFX, outils internes |
| Cloud | Conteneurs Docker, exécution sur Kubernetes (via OpenJDK) |
Synonymes / termes associés
- Langage Java
- Plateforme Java
- JDK (Java Development Kit)
- JRE (Java Runtime Environment) – obsolète depuis Java 11
- OpenJDK (implémentation libre de référence)
En résumé
Java reste la colonne vertébrale de l’informatique industrielle y compris sur Android parce qu’il est fiable, universel et profondément ancré dans l’infrastructure numérique mondiale.