dernièresmodifications CCSI - 03/10/2007Cours langage Java, Fabien Moutarde, CCSI
5
Historique de Java
• Initialement, projet de SUN pour
l'électronique grand public (1991)
• Transformé en langage pour le Web, sous le
nom de "Java", grâce à sa portabilité
(1994/95)
• Lancement officiel en mai 1995
• Après l'engouement pour les applets, Java est
reconnu progressivement comme un langage
à part entière
• Langage de programmation sans doute le plus
utilisé aujourd’hui :
– des millions de développeurs Java
– des milliers d'outils de développement
– 5 milliards d’objets avec une « machine
virtuelle Java », dont 3 milliards de
téléphones (chiffres 2007)
dernièresmodifications CCSI - 03/10/2007Cours langage Java, Fabien Moutarde, CCSI
6
Historique de Java (2)
Evolution très rapide :
• Janv.1996 : Java 1.0
• Fév. 1997 : Java 1.1
– Modification du modèle des événements pour
AWT, JDBC, RMI, ...
• Déc. 1998 : Java 1.2
(renommé Java2 version 1.2 ou J2SE 1.2)
– Collections, Swing, Java2D, …
• Mai 2000 : version 1.3 (ou « Kestrel » ou J2SE 1.3)
• Mars 2002 : v.1.4 (ou « Merlin » ou J2SE 1.3)
– XML parser, Image API, …
• Sept. 2004 : v.1.5 (ou « Tiger » ou J2SE 5.0 !!)
– généricité (proche des templates de C++), types
énumérés, autoboxing/unboxing des types
primitifs dans les collections, ..
• Déc. 2006 : v.1.6 (ou « Mustang » ou Java SE 6 !!!)
– améliorations des performances (Swing
notamment), Scripting, Java DB…
• 2008 (?) : v.1.7 (ou « Dolphin » ou Java SE 7)
dernièresmodifications CCSI - 03/10/2007Cours langage Java, Fabien Moutarde, CCSI
7
Intérêt de Java
•logiciels portables
•programmes fiables
(
rigueur du langage => peu de bogues)
•développement rapide
• pages Web intéractives (via les "applets")
• logiciels (ou briques logicielles)
téléchargeables, éventuellement
automatiquement
• gestion de la sécurité (par défaut, accès
restreint aux ressources locales pour les
applets)
dernièresmodifications CCSI - 03/10/2007Cours langage Java, Fabien Moutarde, CCSI
8
Caractéristiques de Java
• Un langage orienté-objet :
– portable
– compilé puis interprété
(bytecode+JVM)
– robuste (typage fort, pas de pointeurs,
garbage collector)
– modulaire (packages)
– intégrant le multi-threading
• une énorme librairie de classes standards