
Java moderne pratique
Description
Introduction au livre
« Practical Modern Java » est un livre qui propose des explications approfondies et faciles à suivre ainsi que des exemples concis, permettant de comprendre aisément les avantages et l'utilité du Java moderne.
Cela sera utile aux développeurs qui travaillent actuellement dans un environnement Java 8 ou supérieur, mais qui ne peuvent pas s'écarter significativement du style de codage des versions précédentes et qui ne connaissent pas les lambdas, la programmation fonctionnelle et les flux, ou qui envisagent une mise à niveau.
Cela sera utile aux développeurs qui travaillent actuellement dans un environnement Java 8 ou supérieur, mais qui ne peuvent pas s'écarter significativement du style de codage des versions précédentes et qui ne connaissent pas les lambdas, la programmation fonctionnelle et les flux, ou qui envisagent une mise à niveau.
indice
Chapitre 1 : L'évolution de Java
1.1 Introduction
1.2 Chronologie Java
1.3 Java est-il mort ?
1.4 Modifications apportées à la politique relative aux versions de Java
1.5 Nouvelles fonctionnalités par version Java
-1.5.1 Java 5
-1.5.2 Java 6
-1.5.3 Java 7
-1.5.4 Java 8
-1.5.5 Java 9
-1.5.6 Java 10
-1.5.7 Java 11
-1.5.8 Java 12
-1.5.9 Java 13
-1.5.10 Java 14
1.6 Conventions de nommage des versions Java
1.7 Résumé
Chapitre 2 Interfaces et classes
2.1 Introduction
2.2 Problèmes rencontrés lors de l'utilisation de l'interface
2.3 Évolution de l'interface
2.4 méthodes par défaut, statiques et privées
2.5 Différences et limitations par rapport à la classe
2.6 Relations d'héritage multiple
2.7 Résumé
Chapitre 3 Programmation fonctionnelle
3.1 Introduction
3.2 Développement de produits de voyage
3.3 Ajouter des conditions de recherche
3.4 Réponse à l'interface
3.5 Compréhension de code avec expressions lambda
3.6 Référence de méthode
3.7 Résumé
Chapitre 4 : Expressions lambda et interfaces fonctionnelles
4.1 Introduction
4.2 Pourquoi les expressions lambda sont-elles nécessaires ?
4.3 Comprendre les expressions lambda
-4.3.1 Conversion en expressions lambda
-4.3.2 Inférence de format
-4.3.3 Expressions lambda et variables
4.4 Principes de base de l'interface fonctionnelle
-4.4.1 Interface utilisateur
-4.4.2 Interface fonctionnelle
-4.4.3 Interface de prédicat
-4.4.4 Interface fournisseur
-4.4.5 Comment l'utiliser ?
4.5 Application des interfaces fonctionnelles
-4.5.1 Interface pour les données de base
-4.5.2 Interface opérateur
4.6 Référence de méthode
-4.6.1 Référence de méthode
-4.6.2 Référence du constructeur
4.7 Combinaison d'expressions lambda
-4.7.1 Combinaison de consommateurs
-4.7.2 Combinaison de prédicats
-4.7.3 Combinaison de fonctions
4.8 Résumé
Chapitre 5 API de flux
5.1 Introduction
5.2 Comprendre l'interface Stream
-5.2.1 Interface de flux
-5.2.2 Interface de flux de base
5.3 Création d'un objet flux
-5.3.1 Comprendre la création d'objets de flux
-5.3.2 Générateur de flux
5.4 Comprendre les opérations de traitement des cours d'eau
-5.4.1 Opérations intermédiaires
-5.4.2 Opération finale
5.5 Détails clés du fonctionnement des flux
-5.5.1 Filtrage des données
-5.5.2 Tri des données
-5.5.3 Cartographie des données
-5.5.4 Traitement itératif des données
- Convertir en collection 5.5.5
5.6 Comment créer d'autres flux
5.7 Opérations supplémentaires sur les cours d'eau
-5.7.1 Aplatissement des données
-5.7.2 Récupération des données
5.8 Réduction des opérations
-5.8.1 Méthodes de calcul des sommes
-5.8.2 Comprendre les opérations de réduction
-5.8.3 Application des opérations de réduction
5.9 Résumé
Chapitre 6 Programmation parallèle
6.1 Introduction
6.2 API concurrente
-6.2.1 Vue d'ensemble de l'API Concurrent
-6.2.2 Package API concurrent
6.3 Classe des exécuteurs
-6.3.1 Interface d'exécution
-6.3.2 Interface du service d'exécution
-6.3.3 Interface ScheduledExecutorService
-6.3.4 Unité de temps
6.4 Cadre Fork/Join
6.5 Futur et futur réalisable
6.6 Parallélisme des flux
-6.6.1 Comprendre le parallélisme des flux
-6.6.2 Contrôle du nombre de threads
-6.6.3 Parallèle et séquentiel
6.7 Séparateur
6.8 Collecte simultanée
6.9 Autres fonctionnalités utiles
-6.9.1 Variables atomiques
-6.9.2 Nombres aléatoires simultanés
6.10 Résumé
Chapitre 7 Entrées/sorties de fichiers (NIO 2.0)
7.1 Introduction
7.2 Comprendre le concept
7.3 Comprendre les parcours
7.4 Gestion des chemins d'accès à l'aide du chemin
-7.4.1 Création de chemin
-7.4.2 Utilisation des informations de chemin
7.5 Gestion des fichiers
-7.5.1 Aperçu de la classe Fichiers
-7.5.2 Vérification des fichiers et des répertoires
-7.5.3 Copie de fichiers et de répertoires
-7.5.4 Déplacement de fichiers et de répertoires
-7.5.5 Suppression de fichiers et de répertoires
-7.5.6 Vérifier les informations d'attribut du fichier
7.6 Création, écriture et lecture de fichiers
-7.6.1 Options d'ouverture de fichiers
-7.6.2 Utilisation de la classe Fichiers
-7.6.3 Utilisation des entrées/sorties tampon
-7.6.4 E/S de flux
-7.6.5 Canaux et tampon d'octets
-7.6.6 Création de fichiers permanents et temporaires
7.7 Fichiers à accès aléatoire
7.8 Gestion des répertoires
-7.8.1 Créer un répertoire
-7.8.2 Liste des répertoires
-7.8.3 Filtrage des listes
-7.8.4 Répertoire racine
7.9 Arborescence des fichiers
-7.9.1 méthode walkFileTree
-7.9.2 Pré-méthode
-7.9.3 méthodes de marche et de recherche
7.10 Détection des modifications de répertoire
7.11 Résumé
Chapitre 8 Date et heure
8.1 Introduction
Problèmes rencontrés dans les versions antérieures à la 8.2
-8.2.1 Vulnérable au multithreading
-8.2.2 Conventions d'appellation
-8.2.3 Immuabilité des données
8.3 Nouvelle date et heure
8.4 Date
8.5 Date et heure
8.6 Analyse et mise en forme
8.7 Fuseaux horaires et décalages
8.8 Différence entre la date et l'heure
8.9 Paquet Temporel
8.10 Compatibilité avec les versions précédentes
8.11 Résumé
Chapitre 9 Modularisation Java
9.1 Introduction
9.2 Contexte de la modularisation Java
9.3 La nécessité de la modularisation de Java
-9.3.1 Problèmes d'encapsulation
-9.3.2 Problèmes de chemin de classe
-9.3.3 Utilisation des ressources limitées
9.4 Comprendre la modularité de Java
9.5 Création d'un module Java
-9.5.1 Écrire le nom du module
-9.5.2 Créer un répertoire de module
-9.5.3 Écriture de code Java
-9.5.4 Rédaction d'un module technique
-9.5.5 Compilation et exécution basées sur les modules
9.6 Dépendances et accessibilité des modules Java
-9.6.1 Définition des dépendances (requis)
-9.6.2 Définitions d'accessibilité (exportations)
-9.6.3 Module java.se spécial
9.7 Services de modules Java
9.8 Liens et distribution
-9.8.1 Objectifs et utilisations de jlink
-9.8.2 Création d'une image avec jlink
9.9 Résumé
Chapitre 10 Outils JShell
10.1 Introduction
10.2 Qu'est-ce que JShell ?
10.3 Extrait de code
10.4 Fonction de saisie automatique
10.5 Commandes
10.6 Corrections de fragments de code
-10.6.1 Touches de raccourci
-10.6.2 Éditeur externe
10.7 Utilisation de code externe
10.8 Résumé
Chapitre 11 : Nouvelles fonctionnalités utiles
11.1 Introduction
11.2 Évolution de la gestion des exceptions
-11.2.1 Concepts de base de la gestion des exceptions
-11.2.2 Amélioration de l'instruction try
-11.2.3 Interface à fermeture automatique
-11.2.4 Problèmes et améliorations des instructions Catch
11.3 Inférence du type de variable locale
11.4 API Flow de Reactive Streams
-11.4.1 Abonné
-11.4.2 Éditeur
-11.4.3 Processeur
11.5 Prise en charge HTTP améliorée
-11.5.1 Client HTTP
-11.5.2 WebSocket
11.6 Classe optionnelle
-11.6.1 Comprendre le concept de classe optionnelle
-11.6.2 Concaténation à l'aide de map et flatMap
-11.6.3 Classe optionnelle de base
11.7 Résumé
Annexe A Génériques
A.1 Introduction
A.2 Comprendre les génériques
A.3 Génériques et conception de classes/méthodes
A.4 Gestion générique dans la JVM
A.5 Caractères génériques et restrictions de type
-A.5.1 Restrictions d'utilisation des extensions
-A.5.2 Restrictions d'utilisation de super
A.6 Contraintes génériques
A.7 Opérateur Diamant
1.1 Introduction
1.2 Chronologie Java
1.3 Java est-il mort ?
1.4 Modifications apportées à la politique relative aux versions de Java
1.5 Nouvelles fonctionnalités par version Java
-1.5.1 Java 5
-1.5.2 Java 6
-1.5.3 Java 7
-1.5.4 Java 8
-1.5.5 Java 9
-1.5.6 Java 10
-1.5.7 Java 11
-1.5.8 Java 12
-1.5.9 Java 13
-1.5.10 Java 14
1.6 Conventions de nommage des versions Java
1.7 Résumé
Chapitre 2 Interfaces et classes
2.1 Introduction
2.2 Problèmes rencontrés lors de l'utilisation de l'interface
2.3 Évolution de l'interface
2.4 méthodes par défaut, statiques et privées
2.5 Différences et limitations par rapport à la classe
2.6 Relations d'héritage multiple
2.7 Résumé
Chapitre 3 Programmation fonctionnelle
3.1 Introduction
3.2 Développement de produits de voyage
3.3 Ajouter des conditions de recherche
3.4 Réponse à l'interface
3.5 Compréhension de code avec expressions lambda
3.6 Référence de méthode
3.7 Résumé
Chapitre 4 : Expressions lambda et interfaces fonctionnelles
4.1 Introduction
4.2 Pourquoi les expressions lambda sont-elles nécessaires ?
4.3 Comprendre les expressions lambda
-4.3.1 Conversion en expressions lambda
-4.3.2 Inférence de format
-4.3.3 Expressions lambda et variables
4.4 Principes de base de l'interface fonctionnelle
-4.4.1 Interface utilisateur
-4.4.2 Interface fonctionnelle
-4.4.3 Interface de prédicat
-4.4.4 Interface fournisseur
-4.4.5 Comment l'utiliser ?
4.5 Application des interfaces fonctionnelles
-4.5.1 Interface pour les données de base
-4.5.2 Interface opérateur
4.6 Référence de méthode
-4.6.1 Référence de méthode
-4.6.2 Référence du constructeur
4.7 Combinaison d'expressions lambda
-4.7.1 Combinaison de consommateurs
-4.7.2 Combinaison de prédicats
-4.7.3 Combinaison de fonctions
4.8 Résumé
Chapitre 5 API de flux
5.1 Introduction
5.2 Comprendre l'interface Stream
-5.2.1 Interface de flux
-5.2.2 Interface de flux de base
5.3 Création d'un objet flux
-5.3.1 Comprendre la création d'objets de flux
-5.3.2 Générateur de flux
5.4 Comprendre les opérations de traitement des cours d'eau
-5.4.1 Opérations intermédiaires
-5.4.2 Opération finale
5.5 Détails clés du fonctionnement des flux
-5.5.1 Filtrage des données
-5.5.2 Tri des données
-5.5.3 Cartographie des données
-5.5.4 Traitement itératif des données
- Convertir en collection 5.5.5
5.6 Comment créer d'autres flux
5.7 Opérations supplémentaires sur les cours d'eau
-5.7.1 Aplatissement des données
-5.7.2 Récupération des données
5.8 Réduction des opérations
-5.8.1 Méthodes de calcul des sommes
-5.8.2 Comprendre les opérations de réduction
-5.8.3 Application des opérations de réduction
5.9 Résumé
Chapitre 6 Programmation parallèle
6.1 Introduction
6.2 API concurrente
-6.2.1 Vue d'ensemble de l'API Concurrent
-6.2.2 Package API concurrent
6.3 Classe des exécuteurs
-6.3.1 Interface d'exécution
-6.3.2 Interface du service d'exécution
-6.3.3 Interface ScheduledExecutorService
-6.3.4 Unité de temps
6.4 Cadre Fork/Join
6.5 Futur et futur réalisable
6.6 Parallélisme des flux
-6.6.1 Comprendre le parallélisme des flux
-6.6.2 Contrôle du nombre de threads
-6.6.3 Parallèle et séquentiel
6.7 Séparateur
6.8 Collecte simultanée
6.9 Autres fonctionnalités utiles
-6.9.1 Variables atomiques
-6.9.2 Nombres aléatoires simultanés
6.10 Résumé
Chapitre 7 Entrées/sorties de fichiers (NIO 2.0)
7.1 Introduction
7.2 Comprendre le concept
7.3 Comprendre les parcours
7.4 Gestion des chemins d'accès à l'aide du chemin
-7.4.1 Création de chemin
-7.4.2 Utilisation des informations de chemin
7.5 Gestion des fichiers
-7.5.1 Aperçu de la classe Fichiers
-7.5.2 Vérification des fichiers et des répertoires
-7.5.3 Copie de fichiers et de répertoires
-7.5.4 Déplacement de fichiers et de répertoires
-7.5.5 Suppression de fichiers et de répertoires
-7.5.6 Vérifier les informations d'attribut du fichier
7.6 Création, écriture et lecture de fichiers
-7.6.1 Options d'ouverture de fichiers
-7.6.2 Utilisation de la classe Fichiers
-7.6.3 Utilisation des entrées/sorties tampon
-7.6.4 E/S de flux
-7.6.5 Canaux et tampon d'octets
-7.6.6 Création de fichiers permanents et temporaires
7.7 Fichiers à accès aléatoire
7.8 Gestion des répertoires
-7.8.1 Créer un répertoire
-7.8.2 Liste des répertoires
-7.8.3 Filtrage des listes
-7.8.4 Répertoire racine
7.9 Arborescence des fichiers
-7.9.1 méthode walkFileTree
-7.9.2 Pré-méthode
-7.9.3 méthodes de marche et de recherche
7.10 Détection des modifications de répertoire
7.11 Résumé
Chapitre 8 Date et heure
8.1 Introduction
Problèmes rencontrés dans les versions antérieures à la 8.2
-8.2.1 Vulnérable au multithreading
-8.2.2 Conventions d'appellation
-8.2.3 Immuabilité des données
8.3 Nouvelle date et heure
8.4 Date
8.5 Date et heure
8.6 Analyse et mise en forme
8.7 Fuseaux horaires et décalages
8.8 Différence entre la date et l'heure
8.9 Paquet Temporel
8.10 Compatibilité avec les versions précédentes
8.11 Résumé
Chapitre 9 Modularisation Java
9.1 Introduction
9.2 Contexte de la modularisation Java
9.3 La nécessité de la modularisation de Java
-9.3.1 Problèmes d'encapsulation
-9.3.2 Problèmes de chemin de classe
-9.3.3 Utilisation des ressources limitées
9.4 Comprendre la modularité de Java
9.5 Création d'un module Java
-9.5.1 Écrire le nom du module
-9.5.2 Créer un répertoire de module
-9.5.3 Écriture de code Java
-9.5.4 Rédaction d'un module technique
-9.5.5 Compilation et exécution basées sur les modules
9.6 Dépendances et accessibilité des modules Java
-9.6.1 Définition des dépendances (requis)
-9.6.2 Définitions d'accessibilité (exportations)
-9.6.3 Module java.se spécial
9.7 Services de modules Java
9.8 Liens et distribution
-9.8.1 Objectifs et utilisations de jlink
-9.8.2 Création d'une image avec jlink
9.9 Résumé
Chapitre 10 Outils JShell
10.1 Introduction
10.2 Qu'est-ce que JShell ?
10.3 Extrait de code
10.4 Fonction de saisie automatique
10.5 Commandes
10.6 Corrections de fragments de code
-10.6.1 Touches de raccourci
-10.6.2 Éditeur externe
10.7 Utilisation de code externe
10.8 Résumé
Chapitre 11 : Nouvelles fonctionnalités utiles
11.1 Introduction
11.2 Évolution de la gestion des exceptions
-11.2.1 Concepts de base de la gestion des exceptions
-11.2.2 Amélioration de l'instruction try
-11.2.3 Interface à fermeture automatique
-11.2.4 Problèmes et améliorations des instructions Catch
11.3 Inférence du type de variable locale
11.4 API Flow de Reactive Streams
-11.4.1 Abonné
-11.4.2 Éditeur
-11.4.3 Processeur
11.5 Prise en charge HTTP améliorée
-11.5.1 Client HTTP
-11.5.2 WebSocket
11.6 Classe optionnelle
-11.6.1 Comprendre le concept de classe optionnelle
-11.6.2 Concaténation à l'aide de map et flatMap
-11.6.3 Classe optionnelle de base
11.7 Résumé
Annexe A Génériques
A.1 Introduction
A.2 Comprendre les génériques
A.3 Génériques et conception de classes/méthodes
A.4 Gestion générique dans la JVM
A.5 Caractères génériques et restrictions de type
-A.5.1 Restrictions d'utilisation des extensions
-A.5.2 Restrictions d'utilisation de super
A.6 Contraintes génériques
A.7 Opérateur Diamant
Avis de l'éditeur
Apprenez rapidement et facilement les nouvelles fonctionnalités de Java, autrefois considérées comme difficiles !
Bien que Java existe depuis 25 ans, il continue d'évoluer en introduisant de nouvelles fonctionnalités pour rester au goût du jour.
En particulier, Java 8 et les versions ultérieures ont introduit un grand nombre de nouveaux concepts et fonctions qui n'existaient pas auparavant.
Cependant, de nombreux développeurs Java restent encore bloqués sur des connaissances de développement datant de l'ère Java 6.
Ce livre propose une explication facile à comprendre des nouvelles fonctionnalités introduites après Java 6.
Il résume les fonctionnalités ajoutées pour chaque version et couvre en détail le contexte et le concept de chaque fonctionnalité, son utilisation et les relations entre les fonctionnalités.
Nous allons vous montrer comment les nouvelles fonctionnalités de Java peuvent simplifier les choses en utilisant divers exemples de situations que vous pourrez rencontrer en pratique.
Cet exemple est basé sur JDK 11, la dernière version LTS, et peut donc être appliqué immédiatement.
« Practical Modern Java » est un livre qui propose des explications approfondies et faciles à suivre ainsi que des exemples concis, permettant de comprendre aisément les avantages et l'utilité du Java moderne.
Cela sera utile aux développeurs qui travaillent actuellement dans un environnement Java 8 ou supérieur, mais qui ne peuvent pas s'écarter significativement du style de codage des versions précédentes et qui ne connaissent pas les lambdas, la programmation fonctionnelle et les flux, ou qui envisagent une mise à niveau.
- Kim Hyo-jin (Équipe informatique de Meritz Fire & Marine Insurance)
[Ce que ce livre aborde]
▶ Modifications selon la version de Java
▶ Programmation fonctionnelle
▶ Expression lambda
▶ API de flux
▶ Programmation parallèle
▶ Modularisation Java
▶ API Date et Heure
▶ NIO 2.0
Bien que Java existe depuis 25 ans, il continue d'évoluer en introduisant de nouvelles fonctionnalités pour rester au goût du jour.
En particulier, Java 8 et les versions ultérieures ont introduit un grand nombre de nouveaux concepts et fonctions qui n'existaient pas auparavant.
Cependant, de nombreux développeurs Java restent encore bloqués sur des connaissances de développement datant de l'ère Java 6.
Ce livre propose une explication facile à comprendre des nouvelles fonctionnalités introduites après Java 6.
Il résume les fonctionnalités ajoutées pour chaque version et couvre en détail le contexte et le concept de chaque fonctionnalité, son utilisation et les relations entre les fonctionnalités.
Nous allons vous montrer comment les nouvelles fonctionnalités de Java peuvent simplifier les choses en utilisant divers exemples de situations que vous pourrez rencontrer en pratique.
Cet exemple est basé sur JDK 11, la dernière version LTS, et peut donc être appliqué immédiatement.
« Practical Modern Java » est un livre qui propose des explications approfondies et faciles à suivre ainsi que des exemples concis, permettant de comprendre aisément les avantages et l'utilité du Java moderne.
Cela sera utile aux développeurs qui travaillent actuellement dans un environnement Java 8 ou supérieur, mais qui ne peuvent pas s'écarter significativement du style de codage des versions précédentes et qui ne connaissent pas les lambdas, la programmation fonctionnelle et les flux, ou qui envisagent une mise à niveau.
- Kim Hyo-jin (Équipe informatique de Meritz Fire & Marine Insurance)
[Ce que ce livre aborde]
▶ Modifications selon la version de Java
▶ Programmation fonctionnelle
▶ Expression lambda
▶ API de flux
▶ Programmation parallèle
▶ Modularisation Java
▶ API Date et Heure
▶ NIO 2.0
SPÉCIFICATIONS DES PRODUITS
- Date de publication : 21 septembre 2020
Nombre de pages, poids, dimensions : 528 pages | 1 005 g | 188 × 240 × 35 mm
- ISBN13 : 9788966262755
- ISBN10 : 8966262759
Vous aimerez peut-être aussi
카테고리
Langue coréenne
Langue coréenne