Si vous voulez en savoir plus clikez sur les liens ci-haut
Votre première application Java
Les types de base du langage
Les expressions du langage
Les instructions du langage
Le modèle objet de Java
Les packages
Les droits d'accès
La gestion de la mémoire
Les exceptions
Les threads en Java
Génération de documentation
Gestion des entrées/sorties
Le package java.net
Interfaces graphiques
Le package java.beans
Internationalisation d'applications
Java Database Connectivity
Objets distribués et RMI
Java et le langage XML
Java Native Interface (JNI)
Mise en oeuvre d'Applets Java
Les servlets et les pages JSP
Envoie de mail en Java
Etude l'API javax.naming (JNDI)
Introduction à Corba via Java
Enterprise Java Beans (EJB)
Accueil langage Java
Cours connexes : - Java et le Web Le langage HTML Le langage XML Le langage CSS Le langage Javascript - Programmation Le langage C Le langage C++
L'Infini sur CDPour 30 €
Présentation
Qui n'a pas encore entendu parler de Java ? Personne, c'est normal ! Ce nouveau langage connaît un succès qu'aucun autre langage n'avait encore connu. Mais quels en sont les raisons? A mon avis c'est une multitude de petits (ou gros) détails qui font que finalement Java est une bonne solution, et ce quelque soit le problème. En effet, tout d'abord, Java est portable : un programme, une fois compilé fonctionnera aussi bien sous des stations Unix, que sous Windows ou autre. Au point de vue du langage, il intègre tous ce que l'on sait faire de mieux en matière de langage de programmation, tout en évacuant les erreurs faîtes sur les langages dont il est issu (C et C++) : je pense notamment aux macro C, la gestion de la mémoire n'est plus à votre charge (pas trop tôt), ... Son API (Application Programming Interface) est très riche : différents packages permettent d'accéder au réseau, aux entrées/sorties, aux différents composants graphiques ... Et bien d'autres points encore. Finalement, on pourra grâce à Java programmer tout ce que l'on voudra : gestionnaires de fichiers, traitements de texte, applications réparties, jeux, ...
Une des caractéristiques principales de ce langage est que le code Java sera compilé pour une machine dite virtuelle (c'est-à-dire qui n'a pas forcément d'existence physique, mais son concept peut être reproduit sur une machine cette fois-ci réelle) : le code machine résultant est nommé ByteCode. Lors de l'exécution le code machine produit sera transformé en un code machine compréhensible par le microprocesseur que vous utilisez. La raison de ce choix est que Java se veut portable : le programmeur ne souhaite plus faire des adaptions pour que son programme puisse fonctionner sur telle ou telle machine. Si ce choix à des points avantageux, sachez qu'il en a aussi un qui l'est beaucoup moins : convertir une instruction de la JVM (Java Virtual Machine) en une instruction compréhensible par la machine où s'exécute le programme, prend du temps. Pour palier ce problème, deux solutions ont été proposées. La première, c'est d'inclure dans le compilateur, la possibilité de compiler du code natif (pour une machine spécifique). La seconde est plus complexe : l'interprète de la JVM, inclue un JIT (Just In Time compiler). Le JIT est chargé de traduire le code JVM d'un classe (nous expliquerons ce terme plus tard) directement en code natif, et ce dès la première utilisation de la classe. Cette phase de traduction prend certes un peu de temps, mais une fois celle-ci effectuée, et ce jusqu'à la fin de l'exécution du programme, plus aucune traduction de code (sur la classe considéré) ne sera refaite. Cette technique améliore considérablement la rapidité d'exécution des programmes, bien qu'une phase de traduction persiste. Une troisième solution fera peut-être son apparition dans un proche avenir. Elle consisterait à intégrer une puce Java (comprenant le code de la JVM) dans les processeurs des machines. Mais cette solution, n'est pas encore d'actualité.
Ce langage est un vrai langage de programmation : il intègre tous ce que l'on sait faire de mieux en matière de langage de programmation, tout en y enlevant ce qui s'est avéré être des erreurs du passé. Java est un langage orienté objet : la brique de base du programme est donc l'objet, instance d'une classe (on expliquera tout cela en détails dans le chapitre concerné). La gestion de la mémoire n'est plus à la charge du programmeur, enfin : en effet, des techniques de désallocation automatisée de la mémoire existent depuis plus de 20 ans, elles sont très efficaces, et seuls quelques langages les intègrent (je pense notamment à Scheme, et les autres langages fonctionnels). Il n'y a pas, dans Java, de mécanisme de macro-génération de code, comme c'est le cas en C ou en C++, ainsi que pour d'autres langages. La syntaxe, ainsi que quelques points de sémantique, sont inspirés de C++ et donc, par conséquent, de C. Ce dernier point, est à mon sens une bonne chose : ces langages sont désormais rodés, ils ont fait leur preuve, et compte désormais de nombreux adeptes de leurs très célèbres opérateurs (variable++; par exemple). Mais cela ne plaît pas à tout le monde. Java est aussi multithreadé, distribué, robuste et sûr (sur ce point beaucoup de choses ont été faites), ...
Java possède une API (Application Programming Interface) extrêmement riche.. En effet, sans celle-ci, Java n'est rien. C'est par elle que le programmeur va pouvoir accéder à toutes les ressources de la machine, et celles du réseau Internet. Cette vaste librairie est divisée en packages : des ensembles de classes. Voici en quelques points, les grands packages (certains c'entre eux ont des noms de code) qui sont fournis en standard avec Java :
Pour la mise en oeuvre d'interfaces graphiques, deux packages principaux vous sont offerts : java.awt et javax.SWING.
L'AWT (Abstract Window Toolkit) fournie des méthodes d'accès à toutes les ressources graphiques de la machine. Les éléments graphiques utilisés sont ceux du système d'exploitation hôte. Cependant, les concepteurs de l'AWT se sont assurés que tous les comportements proposés au sein de cette librairie (ce package) soient supportés par tous les environnements pouvant supporter Java.
La librairie Swing, quand à elle, propose des composants graphiques totalement pris en charge et dessinés par la JVM. Cela permet de garantir que l'applicatif aura le même look visuel, ce quelque soit le système d'exploitation hôte. En conséquence, SWING et plus riche que l'AWT, mais aussi moins efficace et terme de temps d'exécution.
Le package java.applet : vous trouverez dans ce package, tous ce dont vous aurez besoins pour réaliser des applets (application pouvant s'exécuter dans un navigateur Internet. Il doit être utilisé conjointement avec l'AWT : en effet, dans un document HTML, l'applet occupera une zone graphique.
Le package java.beans : tout pour la programmation orientée composants. Les Java Beans sont des composants logiciels réutilisables et visuellement manipulables dans un atelier de programmation (Comme NetBeans ou JBuilder notamment).
Le package java.lang : fournit un maximum de classes liées au langage : manipulation de chaînes de caractères, manipulations des types de bases, récupération de métaclasses, prise en charge des flots standards de l'applications. On y trouve aussi la classe Object : classe mère de tout objet Java. Ce package est par défaut directement accessible, contrairement aux autres packages, qu'il vous faudra explicitement importer.
Le package java.io : un ensemble incroyable de classes pour gérer toutes vos opérations d'entrées/sorties. Il y a vraiment de quoi s'y perdre.
Le package java.sql (JDBC : Java DataBase Connectivity) : ce package regroupe toutes les fonctionnalités permettant d'accéder à des bases de données diverses. L'utilisation en est très simple, mais quelques bases en SQL (Structured Query Language) sont requises.
Le package java.rmi (Remote Method Invocation) : ce package permet (relativement facilement) de mettre en place des applications réparties. Dans de telles applications, le code n'est pas localisé sur une unique machine, mais au contraire, déployé sur plusieurs.
Et encore pleins d'autres packages : java.net, JNDI, JAXP, les servlets et pages JSP, ... Dans tous les cas, nous verrons en détails tous ces packages, et d'autres, dans les chapitres qui leur sont consacrés.
De plus Java, est simple (relativement aux autres langages orientés objets : C++ notamment) à appréhender, car il offre, comme nous l'avons dit, tous les mécanismes nécessaires à un langage orienté objets, tout en étant débarrassé de mécanismes souvent sources d'erreurs. Il apparaît donc au terme de cette petite présentation, que Java est une solution aux problèmes informatiques du moment. De plus, comme il est encore jeune, il devrait facilement pouvoir s'adapter aux évolutions futures de l'informatique.
Historique
Le langage Java trouve ses origines dans les années 1990. A cette époque, quelques ingénieurs (innovateurs) de SUN Microsystems ont commencés à parler d'un projet d'environnement indépendant du hardware pouvant facilement permettre la programmation d'appareils aussi variés que les téléviseurs, les magnétoscopes,... James Grosling (un ingénieur de SUN Microsystems) développa un premier langage permettant de programmer dans cet environnement : Oak. En 1992, tout était près pour envahir le marché avec cette nouvelle technologie : ce fut en échec.
Un homme sauva malgré tout le projet : Bill Joy (co-fondateur de SUN Microsystems). En effet, devant la montée en puissance d'Internet, il lui a semblé intéressant de proposer un tel langage (et un tel environnement). Effectivement, Les principaux problèmes rencontrés sur Internet sont liés à l'hétérogénéité des machines et des logiciels utilisés.
Dès lors tous s'accélère. Oak est renommé (en 1995) en Java et il est soumit à la communauté Internet grandissante. Une machine virtuelle, un compilateur ainsi que de nombreuses spécifications sont données gratuitement et Java attaque une conquête fulgurante. Aujourd'hui, après de nombreuses améliorations (parfois modifications) Java n'est plus uniquement une solution liée à Internet : de plus en plus de sociétés (ou de particuliers) utilise ce langage pour leurs développements (de toutes sortes).
Les environnements de développement
Il existe un grand nombre d'environnements de développement pour Java (surtout sous PC). Ils présentent un grand nombre de points communs : éditeur intégré, compilateur, débugger sophistiqué, nombreux générateurs de code (surtout pour ce qui touche aux interfaces graphiques). Le plus souvent, ils sont payants.
Par contre, la société SUN propose un environnement minimal mais suffisant (un compilateur et une machine virtuelle) : le JDK. Ce dernier est gratuit et se télécharge directement à partir de l'adresse http://java.sun.com/. Pour débuter, il est très bien. Mais si vous désirez poursuivre avec Java, il faudra alors acquérir un environnement plus adapté.
Pour la suite de ce cours, on considérera que vous utilisez le JDK de SUN. En conséquence, les ordres de compilations, et autres seront donnés pour pour cet environnement. Si vous en utilisez un autre, il sera alors a votre charge de déterminer les actions correspondantes. Il est bien entendu, que pour tout ce qui relève du langage, il n'y aura bien sûr pas de modification.
Quelques pointeurs utiles
Le site de Sun Microsystems : http://java.sun.com
Les tutoriaux de Sun Microsystems (en anglais) : http://java.sun.com/docs/books/tutorial/
Les spécifications des différentes versions de l'API Java : http://java.sun.com/products/jdk/1.1/docs/api/index.html http://java.sun.com/products/jdk/1.2/docs/api/index.html http://java.sun.com/products/jdk/1.3/docs/api/index.html http://java.sun.com/products/jdk/1.4/docs/api/index.html
j'espere vous avoir aidé
N hubert
vendredi 6 juillet 2007
Inscription à :
Publier les commentaires (Atom)
Aucun commentaire:
Enregistrer un commentaire