Programmation Java Mohammed Lahmer (©2002-2017) V 1.3 © M. Lahmer 2002-2017 2 S

Programmation Java Mohammed Lahmer (©2002-2017) V 1.3 © M. Lahmer 2002-2017 2 SOMMAIRE 1. Présentation du Langage ..................................................................................................................... 3 1. Bref historique ................................................................................................................. 3 2. Les caractéristiques du langage Java ........................................................................... 3 3. Kit de développement ...................................................................................................... 6 2. Structure du Langage ........................................................................................................................... 9 1. La syntaxe ....................................................................................................................... 9 2. Classes et Objets ............................................................................................................ 12 3. Méthodes et variables de la classe ............................................................................. 15 4. Les packages ................................................................................................................. 16 5. Classes particulières ...................................................................................................... 16 3. L’héritage en Java ................................................................................................................................ 21 1. Principe de L’héritage ................................................................................................. 21 2. Syntaxe de l’héritage ................................................................................................... 21 3. Polymorphisme ............................................................................................................ 23 4. Classes et méthodes abstraites ................................................................................... 24 5. Les interfaces ................................................................................................................. 24 4. Les Collections ...................................................................................................................................... 25 1. Définitions ..................................................................................................................... 25 2. L’interface Collection ................................................................................................... 26 3. La classe ArrayList ........................................................................................................ 27 4. L’interface Map ............................................................................................................. 28 5. Tri et Recherche dans des collections ........................................................................... 29 6. La gestion du temps (Date/Time) .................................................................................. 30 5. Les entrées sorties .............................................................................................................................. 31 1. Les flux java .................................................................................................................. 31 2. La classe File ................................................................................................................. 31 3. Les flux octets ............................................................................................................... 32 4. Les flux caractères ......................................................................................................... 34 5. Les filtres ....................................................................................................................... 35 6. Sérialisation des objets .................................................................................................. 35 6. Le graphique en Java .......................................................................................................................... 37 1. Graphique en Java ......................................................................................................... 37 2. Composants lourds/ légers ............................................................................................ 39 3. Composants de base .................................................................................................... 41 4. Mise en page des composants dans un conteneur ......................................................... 43 5. Traitement des événements ........................................................................................... 45 6. Les autres Composants graphiques ............................................................................... 48 7. Accès aux bases de données en JDBC .......................................................................................... 55 1. Principe .......................................................................................................................... 55 2. Mise en œuvre ............................................................................................................... 55 3. PreparedStatement et CollablStatement .......................................................................... 57 4. Les métadonnées ........................................................................................................... 58 8. Client / Serveur en RMI .................................................................................................................... 60 1. Définition ...................................................................................................................... 60 2. Mise en œuvre ............................................................................................................... 60 © M. Lahmer 2002-2017 3 1. Présentation du Langage 1. Bref historique  1993 : projet Oak (langage pour l'électronique grand public)  1995 : Java / HotJava  Mai 95 : Netscape prend la licence  Sept. 95 : JDK 1.0 b1  Déc. 95 : Microsoft se dit intéresser  Janv. 96 : JDK 1.0.1  Eté 96 : Java Study Group ISO/IEC JTC 1/SC22  Fin 96 : RMI, JDBC, JavaBeans, ...  Fév. 97 : JDK 1.1  98 : C’est la grande révolution JDK 1.2 ou java 2  J2SE 1.3 2000  J2SE 1.4 2002 (instruction assert, intégration XML et des extensions de sécurité)  J2SE 5.0 2004 (annotation@, type enum, varargs, for each)  Java SE 6 2006 (support du web services, amélioration du graphique)  Java SE 7 2011 (String dans switch, nouveau flux I/O)  Java SE 8 2014 (JavaFX nouveau mode de développement du graphique, fonction Lambda, nouvelle api Date/Time ) 2. Les caractéristiques du langage Java 1. Java est un langage orienté objets  Tout est classe (pas de fonctions { l’extérieure d’une classe) sauf les types primitifs (int, float, double, ...) et les tableaux  Toutes les classes dérivent de java.lang.Object  Héritage simple pour les classes  Héritage multiple pour les interfaces Spécification J2ME (Java 2 Micro Edition) J2SE (Java 2 Standard Editon) J2EE (Java 2 Enterprise Edition) Java 2 © M. Lahmer 2002-2017 4  Les objets se manipulent via des références  Une API objet standard est fournie  La syntaxe est proche de celle de C 2. Langage semi-compilé et semi-interprété  Un langage compilé est un langage qui permet de créer un fichier exécutable { partir d’un programme source  Un langage interprété est un langage ou le code source doit être lu par un interpréteur pour s’exécuter.  Le code source est d’abords compilé en byte code (attention ce n’est pas un code machine) puis interprété et exécuté par la machine virtuelle Java (JVM) 3. Java est portable  Les programmes java (à part certains cas très particuliers) sont indépendants de la plate-forme.  Il est d’abord traduit dans un langage appelé « bytecode » qui est le langage d’une machine virtuelle (JVM ; Java Virtual Machine) dont les spécifications ont été définies par Sun.  La Java Virtual Machine (JVM) est présente sur Unix, Linux,Win32, Mac, OS/2, Mozilla, Netscape, IE, ...  La taille des types primitifs est indépendante de la plate-forme contrairement à C ou C++.  Java supporte un code source écrit en Unicode facilement internationalisable. © M. Lahmer 2002-2017 5 4. Java est robuste  Gestion de la mémoire par un garbage collector qui Libère la mémoire d’un objet non utilisé. Évite la surcharge  Mécanisme d'exception des erreurs système pris en charge par la JVM. (Accès à une référence null exception)  Compilateur contraignant (erreur si exception non gérée, si utilisation d’une variable non affectée, ...).  Tableaux = objets (taille connue, débordement : exception)  Contrôle des cast à l'exécution. Seules les conversions sûres sont automatiques. 5. Java est sécurisé La sécurité est indispensable avec le code mobile (Applications répartis). Il existe trois niveaux de sécurité au niveau de la JVM:  Vérification : vérifie le byte code.  Chargement (Class Loader) : responsable du chargement des classes. (vérifier les autorisations private, protected, public)  Contrôle (Security Manager) : contrôle l’accès aux ressources. En plus vous avez la possibilité de certifier le code par une clé. (mécanismes de cryptographie et d’authenticité) Une fois le code est chargé en mémoire, il est impossible de faire un accès direct à la mémoire contrairement à C et C++. 6. Java est multi-thread et Distribué  Java est multi-thread  Accès concurrents à objet gérés par un monitor (verrou, sémaphore, ..).  Implémentation propre a chaque JVM->Difficultés pour la mise au point et le portage.  Java est distribué  API réseau (java.net.Socket, java.net.URL, ...).  Chargement / génération de code dynamique.  Applet.  Servlet.  (RMI) Remote Method Invocation.  JavaIDL (CORBA). © M. Lahmer 2002-2017 6 3. Kit de développement 1. JVM / JRE Les machines virtuelles java sont fournies gratuitement par Sun Microsystems. Elles sont fournies sous forme de JRE (Java Runtime Environment) comprenant la machine virtuelle et les package du noyau de java (APIs). Le JRE ne contient pas d'outils ou d'utilitaires pour compiler ou débuguer les applets ou les applications. Intel, Motorala, Ultra-sparc sont des exemples de processeurs intégrés dans des plate-formes type : Pc, Mac ou Station Sun 2. Structure JSDK JSDK (Java Software Developpement Kit) est composé de JRE et plusieurs outils. JRE = JVM + APIs Noyau JSE = JRE + Outils © M. Lahmer 2002-2017 7 Les outils  javac : compilateur de sources java  java : interpréteur de byte code  appletviewer : interpréteur d'applet  javadoc : générateur de documentation (HTML, MIF)  javah : générateur de header pour l'appel de méthodes natives  javap : désassembleur de byte code  jdb : débegueur  javakey : générateur de clés pour la signature de code  rmic : compilateur de stubs RMI  rmiregistry : "Object Request Broker" RMI 2. Les APIs de base  java.lang : Types de bases, Threads, ClassLoader, Exception, Math, ...  java.util : Hashtable, Vector, Stack, Date, ...  java.applet  java.awt : Interface graphique portable  java.io : accès aux i/o par flux, wrapping, filtrage  java.net : Socket (UDP, TCP, multicast), URL, ...  java.lang.reflect : introspection sur les classes et les objets  java.beans : composants logiciels réutilisables  java.sql (JDBC) : accès homogène aux bases de données © M. Lahmer 2002-2017 8  java.security : signature, cryptographie, authentification  java.serialisation : sérialisation d'objets  java.rmi : Remote Method Invocation  Javax.swing : extension du java.awt, plus riches en terme de composants  Java2D : intégré depuis JDK 1.2 sous forme de sous paquetage du awt.  Java.security et Javax.security : contient une implémentation de la plupart des standard de la cryptographie et le hashage.  javax.xml : pour le traitement des fichiers xml Il existe d’autres Apis tierces que vous pouvez télécharger indépendamment du Kit :  JFreeChart / JGraph : pour la génération des graphes tels que les histogrammes, les secteurs,….  SNMP4J : La supervision d’un réseau par le biais du protocole snmp  Jpcap : La capture des trames, paquets qui circules dans un réseau  org.apache.commons.net : offre un support à la majorité des protocoles réseaux (FTP/FTPS, NNTP, SMTP(S), POP3(S), IMAP(S), Telnet, TFTP, …) © M. Lahmer 2002-2017 9 2. Structure du Langage 1. La syntaxe 1. Premier programme Java On crée un fichier HelloWorld.java qu’on met directement dans c : public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world"); // Afficher sur Ecran }}  La classe Helloworld est public, donc le fichier qui la contient doit s’appeler (en tenant compte des majuscules et minuscules) HelloWorld.java  Un fichier .java peut contenir la définition de plusieurs classes mais une et une seule qui doit être publique  Compilation avec javac  c:\>javac HelloWorld.java o crée un fichier « HelloWorld.class » qui contient le bytecode, situé dans le même répertoire que le fichier « .java »  Execution avec java  c:\>java uploads/S4/ java-v-1-3.pdf

  • 28
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Dec 10, 2021
  • Catégorie Law / Droit
  • Langue French
  • Taille du fichier 1.4052MB