Concepts de base | ||
RETOUR | Historique
Premiers développements en 1990 par Sun Microsystems Une nouvelle génération de logiciels (OS, interface) et de matériels pour les produits électroniques de grande consommation
Première démonstration à l'automne 1992 Utilisation de JAVA pour l'Internet Naissance, à la fin de 1994, du premier browser acceptant d'exécuter des programmes ("applets") écrits en JAVA : HotJava de Sun Microsystems Netscape Communications Corporation inclue les spécifications Java/Java Script dans son browser Netscape Navigator Présentation officielle de Java et HotJava le 23 mai 1995. JDK (Java Development Kit) en version 1.0 en téléchargement libre et gratuit sur son site Web Distribution de la version 1.1 en 1997 Apparition de la version 1.2 en 1998 CaractéristiquesSun Microsystems : " JAVA est un langage simple, orienté objet. JAVA n'est pas déroutant pour le programmeur C++ mais en évite les écueils. JAVA est robuste, sécurisé. Il est indépendant de l'architecture, portable. Il est performant, distribué, multi-threadé et dynamique. " Orienté-objetIndépendant de la machine Exécution sur tous les ordinateurs ?
Compilation d'un programme JAVA au moyen du JAVA Development Kit : Transformation en un pseudo-assembleur (bytecode) propre à la machine virtuelle JAVA et donc indépendant de la machine physique. Génération d'un fichier class à partir d'un fichier java. Fonctionnement par interprétation des fichiers class sur les seules plateforme munis d'un "traducteur JAVA" : la machine virtuelle JAVA (JVM, JAVA Virtual Machine) Deux types de traducteur JAVA correspondant à deux environnements :
Programmes JAVA spécifiquement conçus en fonction de l'environnement d'exécution :
Possibilités de programmation différentes suivant l'environnement Systèmes d'exploitation supportés : Solaris 2.3 et +, Windows 95, Windows NT, Windows 3.1, OS/2 Warp, Linux, Irix, Aix, Unixware 2.0, HP/UX, MVS, Mac OS 7.5 et 8 pour les PowerMacs, 68020, 68030, ... Browsers supportés : Netscape Navigator, Netscape Communicator, Internet Explorer Multi-threadéLancement possible de plusieurs tâches ou processus indépendants ou non s'exécutant simultanément Gestion d'un mécanisme de moniteur permettant de synchroniser facilement ces processus ou "threads" Programmation de tâches de fond. SimpleDérivé simplifié de C/C++ pour la syntaxe Retrait :
Pratiquement, tout est classe, méthode ou objet -> moins de confusions !!! CompactPetitesse du code généré dans les fichiers class Gestion des erreurs d'exécutionImpossibilité de " planter " l'ordinateur, tout au plus plantage de la JVM Gestion par la JVM des erreurs, des bugs ou des accès non autorisés à la mémoire -> Affichage d'un message précisant la nature de l'erreur Possibilité pour le programmeur de prévoir les erreurs éventuelles, et de les intercepter pour les traiter par le biais d'instructions de gestion des exceptions (try et catch). Conçu pour les réseauxExistence de classes d'accès réseau (sockets, URL,...) et reconnaissance des protocoles réseaux les plus communs Développement de protocoles standards comme CORBA (J.D.K. 1.2) et JDBC (J.D.K. 1.1) pour l'accès à des objets distribués ou à des bases de données SécuriséIntégration de plusieurs mécanismes de sécurité visant à rendre les programmes fiables et à éliminer les risques d'erreurs Lors du chargement d'une classe, vérification du ByteCode JAVA est lent... pour le momentSelon les instructions exécutées, de 2 à 20 fois plus lent qu'un programme écrit en C/C++ Conséquence de la sécurité et de la portabilité |