Concepts de base
WB01624_.gif (281 octets) 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

  • Portable
  • Facile à utiliser
  • Produisant un code compact

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éristiques

Sun 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é-objet

Indépendant de la machine

Exécution sur tous les ordinateurs ?

Oui et non

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 :

  • Les systèmes d'exploitation

  • Les Browsers WEB

Programmes JAVA spécifiquement conçus en fonction de l'environnement d'exécution :

  • Application JAVA -> Système d'exploitation

  • Applette JAVA -> Browser WEB

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.

Simple

Dérivé simplifié de C/C++ pour la syntaxe

Retrait :

  • des pointeurs
  • de la surcharge d'opérateurs
  • de l'héritage multiple
  • des préprocesseurs
  • des unions
  • des structures
  • de la gestion de mémoire
  • de la conversion implicite de types

Pratiquement, tout est classe, méthode ou objet -> moins de confusions !!!

Compact

Petitesse du code généré dans les fichiers class

Gestion des erreurs d'exécution

Impossibilité 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éseaux

Existence 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 moment

Selon 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é