Introduction
Introduction à Java Généralités
• Java est un véritable langage de programmation !
– Syntaxe proche de C++, orienté objet, d’une utilisation simple, implémentant un maximum de sécurité, il permet d’exécuter des programmes au travers d’une machine virtuelle.
• Il est fourni avec un ensemble de “packages” : les classes de base du JDK (Java Developper’s Toolk-it)
– Sans ces classes de base, Java n’est rien. Elles fournissent les fonctionnalités de base (entrées/sorties, réseau, etc…). Le langage lui-même se trouve dans le package (ensemble de classes)java.lang!
• Java et l’internet
– Du fait de son fonctionnement au travers d’une machine virtuelle, Java est un langage “qui voyage”.
Introduction à Java Caractéristiques de base
• Java est un langage
1. simple,
2. orienté objet,
3. distribué,
4. interprété,
5. robuste,
6. sûr,
7. indépendant de l’architecture (portable),
8. mobile,
9. performant (pas pour toutes les applications,mais ça va venir…)
10. multithreadé,
11. dynamique,
12. exécuté non pas au travers d’un interpréteur,mais au travers de l’émulation d’une machine virtuelle, ou d’un puce JavaOS
13. possédant une riche API : le JDK
14. véritable explosion depuis son lancement : nombreux produits commerciaux : IDEs, APIs spécialisées, etc…
Introduction à Java
Simplicité (apparente ?)
• Basé sur C/C++, mais…
– pas de pointeurs,
– pas de structures ni de macros (struct, type-def et #defines),
– pas de gestion de la mémoire laissée au programmeur (malloc()etfree()sont morts, paix à leurs âmes…)
Java offre toute la fonctionnalité d’un langage de programmation puissant, mais débarrassé des caractéristiques prêtant à confusion.
Sa syntaxe est proche de celle de C/C++ mais (fort heureusement !) a été adaptée pour en permettre une approche plus rapide et surtout en gommer certains aspects critiqués ou provocant de nombreuses erreurs de programmation.
Introduction à Java Simplicité (apparente ?)
• N’a-t-on rien perdu par rapport au C/C++ ?
Non, les suppressions évoqués précédemment réduisent de moitié les erreurs les plus fréquentes du C et du C++.
En outre, la suppression des macros, si elle peut sembler une hérésie, augmente de beaucoup la lisibilité des programmes.
L’héritage multiple au sens courant a disparu, mais existe sous une forme différente grâce au concept d’”interfaces”.
• Java est-t-il un beau langage ?
La notion de “beau” est subjective, mais oui, Java est un langage extrêmement agréable à programmer et permet dans certains cas de développer des applications beaucoup plus rapidement qu’avec d’autres langages.
• Java est peu gourmand en mémoire
– La machine virtuelle n’a besoin que de 215k pour s’exécuter.
– Java dans une montre à quartz ? Oui, c’est possible !
Introduction à Java Orienté objet, distribué
• Orienté objet
Java reprend la technologie objet du C++ et y ajoute quelques améliorations. Il y enlève aussi un gros morceau (l’héritage multiple, la généricité et d’autres encore…) mais sans vraiment y perdre. Nous y reviendrons…
Contrairement à C++, Java est complètement objet, ne demeurent que quelques types primitifs (int, char) hérités du C possèdant des “wrapper classes”.!
Introduction à Java Robuste
• Nombreuses vérifications à la compilation et à l’exécution
Lors de la phase de compilation, Java s’assure qu’il n’y a aucun problème, que toutes les erreurs pouvant empêcher l’exécution du programme ont bien été traitées (ouverture d’un fichier inexistant ou accès mémoire en dehors des bornes d’un tableau par exemple).
Cette vérification permet d’éviter qu’un problème grave ne corrompe la machine virtuelle ou le système qui l’exécute. N’oubliez pas que les programmes Java “voyagent” d’une machine à l’autre ! Vous ne voudriez pas qu’un programme arrive dans votre navigateur Web et plante votre machine !
……
Introduction à Java (436 KO) (Cours PDF)