Java 8 Les fondamentaux du langage Java
Avec exercices pratiques et corrigés
Avant-propos
Chapitre 1
Présentation
1. Historique11
1.1 Pourquoi Java ?11
1.2 Objectifs de la conception de Java12
1.3 Essor de Java13
2. Caractéristiques de Java14
2.1 Le langage de programmation Java15
2.1.1 Simple15
2.1.2 Orienté objet16
2.1.3 Distribué17
2.1.4 Interprété17
2.1.5 Robuste17
2.1.6 Sécurisé18
2.1.7 Indépendant des architectures19
2.1.8 Portable19
2.1.9 Performant19
2.1.10 Multitâche20
2.1.11 Dynamique20
2.2 La plate-forme Java20
2.2.1 La machine virtuelle Java (JVM)21
2.2.2 L'API Java23
2.2.3 Les outils de déploiement des applications26
2.2.4 Les outils d'aide au développement26
2.3 Cycle de conception d'un programme Java27
3. Installation du SDK version Win32
pour l'environnement Windows28
3.1 Téléchargement28
3.2 Installation29
3.3 Configuration30
3.4 Test de la configuration du SDK31
3.5 Installation de la documentation du SDK
et des API standard32
4. Les différentes étapes de création d'un programme Java34
4.1 Création des fichiers source34
4.2 Compiler un fichier source35
4.3 Exécuter une application37
5. Votre première application Java38
5.1 Squelette d'une application38
5.2 Arguments en ligne de commande40
5.2.1 Principes et utilisation40
5.2.2 Passage d'arguments à une application Java
au moment de l'exécution41
Chapitre 2
Bases du langage
1. Les variables, constantes et énumérations43
1.1 Les variables43
1.1.1 Nom des variables44
1.1.2 Type des variables44
1.1.3 Valeurs par défaut48
1.1.4 Valeurs littérales49
1.1.5 Conversions de types50
1.1.6 Déclaration des variables53
1.1.7 Portée des variables54
1.1.8 Niveau d'accès des variables55
1.1.9 Durée de vie des variables55
1.2 Les constantes56
1.3 Les énumérations57
1.4 Les tableaux60
1.5 Les chaînes de caractères65
1.6 Date et heure72
2. Les opérateurs75
2.1 Les opérateurs unaires76
2.2 Les opérateurs d'affectation77
2.3 Les opérateurs arithmétiques77
2.4 Les opérateurs bit à bit78
2.5 Les opérateurs de comparaison78
2.6 L'opérateur de concaténation79
2.7 Les opérateurs logiques80
2.8 Ordre d'évaluation des opérateurs81
3. Les structures de contrôle82
3.1 Structures de décision82
3.1.1 Structure if82
3.1.2 Structure switch84
3.2 Les structures de boucle86
3.2.1 Structure while86
3.2.2 Structure do ... while87
3.2.3 Structure for87
3.2.4 Interruption d'une structure de boucle90
4. Exercices93
5. Corrections94
Chapitre 3
Programmation objet
1. Introduction101
2. Mise en oeuvre avec Java104
2.1 Création d'une classe105
2.1.1 Déclaration de la classe105
2.1.2 Création des champs106
2.1.3 Création de méthodes107
2.1.4 Les accesseurs112
2.1.5 Constructeurs et destructeurs113
2.1.6 Champs et méthodes statiques115
2.1.7 Les annotations117
2.2 Utilisation d'une classe120
2.2.1 Création d'une instance120
2.2.2 Initialisation d'une instance121
2.2.3 Destruction d'une instance123
2.3 Héritage128
2.3.1 this et super130
2.3.2 Classes abstraites135
2.3.3 Classes finales136
2.3.4 Conversion de type137
2.3.5 La classe Object143
2.4 Interfaces150
2.4.1 Création d'une interface150
2.4.2 Utilisation d'une interface151
2.4.3 Méthodes par défaut155
2.5 Classes imbriquées161
2.5.1 Classes imbriquées statiques161
2.5.2 Classes internes162
2.5.3 Classes anonymes164
2.6 Expression lambda169
2.7 Référence de méthode176
2.8 Les génériques178
2.8.1 Classes génériques179
2.8.2 Méthodes génériques187
2.8.3 Les génériques et l'héritage188
2.8.4 Limitation des génériques194
2.9 Les packages197
2.9.1 Création d'un package197
2.9.2 Utilisation et importation d'un package199
3. Gestion des exceptions201
3.1 Les erreurs de syntaxe201
3.2 Les erreurs d'exécution203
3.3 Les erreurs de logique203
3.3.1 Les exceptions204
3.3.2 Récupération d'exceptions205
3.3.3 Exceptions associées à des ressources209
3.3.4 Création et déclenchement d'exceptions213
4. Les collections215
4.1 La classe ArrayList216
4.2 La classe HashSet220
4.3 La classe LinkedList229
4.4 streams et pipelines230
5. Exercices233
6. Corrections234
Chapitre 4
Applications graphiques
1. Introduction257
1.1 Les bibliothèques graphiques258
1.1.1 La bibliothèque AWT258
1.1.2 La bibliothèque Swing258
1.2 Constitution de l'interface graphique d'une application259
2. Conception d'une interface graphique260
2.1 Les fenêtres260
2.2 La gestion des événements265
2.3 Aspect des composants295
2.4 Le positionnement des composants296
2.4.1 FlowLayout297
2.4.2 BorderLayout299
2.4.3 GridLayout305
2.4.4 BoxLayout307
2.4.5 GridBagLayout311
2.4.6 Sans gestionnaire de mise en page315
2.5 Les composants graphiques318
2.5.1 La classe JComponent319
2.5.2 Affichage d'informations322
2.5.3 Les composants d'édition de texte327
2.5.4 Les composants de déclenchement d'actions333
2.5.5 Les composants de sélection340
2.6 Les boîtes de dialogue348
2.6.1 La boîte de saisie349
2.6.2 La boîte de message352
2.6.3 La boîte de confirmation352
Chapitre 5
Les applets
1. Principe de fonctionnement355
2. Création d'une applet356
2.1 Cycle de vie d'une applet357
2.1.1 Méthodes liées au cycle de vie de l'applet357
2.1.2 Méthodes de gestion de l'aspect graphique de l'applet358
2.2 Construire l'interface utilisateur d'une applet361
2.2.1 Création d'une police de caractères362
2.2.2 Obtenir les dimensions de l'applet362
2.2.3 Dessiner les caractères363
2.2.4 Déterminer les dimensions d'une chaîne363
2.3 Les images dans les applets368
2.3.1 Chargement d'une image369
2.3.2 Traitement de l'image371
2.3.3 Traçage de l'image371
2.4 Les threads dans les applets374
2.4.1 Création d'un nouveau thread376
2.4.2 Définir le traitement à effectuer376
2.4.3 Démarrer et arrêter un thread379
2.5 Les sons dans les applets381
3. Déployer une applet383
3.1 La balise <applet>383
3.2 Paramétrage d'une applet385
3.2.1 Définir les paramètres385
3.2.2 Récupération des paramètres dans l'applet386
3.3 Sécurité dans une applet387
3.4 Communication entre applets388
3.5 Interaction avec le navigateur et le système390
3.5.1 Affichage sur la console390
3.5.2 Utilisation de la barre d'état du navigateur392
3.5.3 Affichage d'une page html393
3.5.4 Obtenir certaines propriétés du système394
Chapitre 6
Accès aux bases de données
1. Principe de fonctionnement d'une base de données397
1.1 Terminologie397
1.2 Le langage SQL398
1.2.1 Recherche d'informations399
1.2.2 Ajout d'informations401
1.2.3 Mise à jour d'informations401
1.2.4 Suppression d'informations402
2. Accès à une base de données à partir de Java402
2.1 Présentation de jdbc404
2.2 Chargement du pilote405
2.3 Établir et manipuler la connexion406
2.3.1 Établir la connexion406
2.3.2 Manipuler la connexion407
2.4 Exécution d'instructions SQL412
2.4.1 Exécution d'instructions de base
avec l'objet Statement412
2.4.2 Exécution d'instructions paramétrées
avec l'objet PreparedStatement420
2.4.3 Exécution de procédures stockées
avec l'objet CallableStatement424
2.5 Utilisation des jeux d'enregistrements
avec l'interface ResultSet427
2.5.1 Positionnement dans un ResultSet429
2.5.2 Lecture des données dans un ResultSet431
2.5.3 Modification des données dans un ResultSet434
2.5.4 Suppression de données dans un ResultSet437
2.5.5 Ajout de données dans un ResultSet438
2.6 Gestion des transactions439
2.6.1 Mise en oeuvre des transactions441
2.6.2 Points de sauvegarde442
2.6.3 Niveaux d'isolement442
Chapitre 7
Déploiement d'applications
1. Archives Java445
1.1 Présentation445
1.2 Manipulation d'une archive446
1.2.1 Création d'une archive446
1.2.2 Visualisation du contenu447
1.2.3 Extraction448
1.2.4 Mise à jour448
1.2.5 Exécution449
1.3 Le manifest449
1.3.1 Présentation450
1.3.2 Création450
1.4 Scellement et signature d'une archive451
1.4.1 Scellement451
1.4.2 Signature455
2. Java Web Start460
2.1 Présentation460
2.2 Exécution d'une application461
2.2.1 À partir d'un navigateur461
2.2.2 À partir du cache local461
2.3 Déploiement d'une application464
2.3.1 Configuration du serveur Web464
2.3.2 Création du fichier JNLP467
2.3.3 Déployer l'application sur le serveur471
2.3.4 Création de la page Web d'accueil473
Index475