Optional est un objet conteneur utilisé pour encapsuler des objets non-null. Il représente labsence de valeur au lieu dutiliser null. Cette classe fournit diverses méthodes utilitaires pour gérer les valeurs comme « présentes » ou « absentes » sans vérifications explicites de nullité. Introduite en
LAPI Stream (Java 8) ajoute une couche abstraite pour traiter les données de façon déclarative, comme SQL. Exemple SQL : SELECT max(salary), employee_id, employee_name FROM Employee Sans Stream : boucles, vérifications répétées, code parallèle complexe et propice aux erreurs. Stream : déclaratif, pa
Java 8 introduit les méthodes par défaut (default) dans les interfaces : implémentation fournie directement dans linterface. Ajoutées pour la compatibilité ascendante : permettre dajouter des méthodes (ex: forEach) aux interfaces existantes (Collection, List) sans casser les implémentations. Syntax
Une interface fonctionnelle a une seule méthode abstraite. Java 8 en définit beaucoup dans java.util.function pour usage intensif avec les lambdas. Principales interfaces (extrait) InterfaceDescription Predicate<T>Prédicat booléen sur un argument : test(T) Consumer<T>Opération sur u
Les références de méthode (operator ::) permettent de référencer une méthode par son nom au lieu de linvoquer. Utilisables pour : Méthodes statiques Méthodes dinstance Constructeurs (ClassName::new) Exemple : référence à méthode statique import java.util.List; import java.util.ArrayList; public
Les expressions lambda (Java 8) sont la fonctionnalité phare. Elles permettent la programmation fonctionnelle et simplifient grandement le développement. Syntaxe corps_expression Caractéristiques Type optionnel : le compilateur infère le type des paramètres. Parenthèses optionnelles : pour un se
Configuration locale Pour configurer votre environnement Java 8 : Téléchargez Java SE gratuitement : Oracle Java 8 Archive (version selon votre OS). Exécutez linstalleur (.exe sur Windows). Définissez les variables denvironnement vers les répertoires dinstallation. Windows (2000/XP et versions ré
Java 8 (mars 2014) est une version majeure apportant : programmation fonctionnelle, nouveau moteur JavaScript (Nashorn), API Date-Time, Stream API, etc. Fonctionnalités clés Expressions lambda : capacité de traitement fonctionnel. Références de méthode : référencer des fonctions par nom. Méthodes
CompletableFuture (Java 8) représente un futur complétable explicitement. Java 9 laméliore sur trois axes : 1. Support des délais et timeouts public CompletableFuture<T> completeOnTimeout(T value, long timeout, TimeUnit unit) public CompletableFuture<T> orTimeout(long timeout, TimeUnit
Java 9 introduit MultiResolutionImage et BaseMultiResolutionImage pour gérer un ensemble dimages à résolutions variées comme une seule image logique. Opérations principales Image getResolutionVariant(double width, double height) : retourne la meilleure variante pour la taille demandée. List<Ima
Optional (Java 8) évite les vérifications null et NullPointerException. Java 9 ajoute trois méthodes : 1. stream() public Stream<T> stream() Si valeur présente : stream à un élément. Sinon : stream vide. Permet dutiliser flatMap(Optional::stream) pour aplatir une liste dOptionals. Exemple o
Lopérateur diamant <> (Java 7) simplifie linstanciation générique mais nétait pas utilisable avec les classes anonymes. Java 9 lève cette restriction. Avant Java 9 : type explicite requis Handler<Integer> intHandler = new Handler<Integer>(1) { ... }; Handler<? extends Number>
@Deprecated (depuis Java 5) indique quun élément ne devrait plus être utilisé : risque derreurs, incompatibilité future, suppression prévue, ou meilleure alternative. Java 9 ajoute deux attributs : forRemoval (boolean) : indique si lélément est prévu pour suppression dans une version future. Défau
Le try-with-resources garantit la fermeture automatique des ressources implémentant AutoCloseable ou Closeable. Avant Java 9 : variable obligatoire dans le bloc try Reader inputString = new StringReader(message); BufferedReader br = new BufferedReader(inputString); try (BufferedReader br1 = br) {
Les Streams (Java 8) permettent le traitement déclaratif de séquences. Java 9 ajoute quatre méthodes utiles. 1. takeWhile(Predicate) Prend les éléments tant que le prédicat est true (préfixe le plus long). default Stream<T> takeWhile(Predicate<? super T> predicate) Exemple !s.isEmpty(
LAPI Process de Java 9 est considérablement améliorée pour contrôler et gérer les processus du système dexploitation. La classe ProcessHandle fournit désormais : ID de processus natif (pid()) Heure de démarrage (startInstant()) Temps CPU accumulé Arguments, commande, utilisateur Processus parent e
Évolution des interfaces : Avant Java 8 : constantes + méthodes abstraites uniquement. Java 8 : + méthodes default et static. Java 9 : + méthodes private et private static. Problème : duplication dans les méthodes default Avec Java 8, le code commun dans les méthodes default ne peut pas être fact
Java 9 ajoute des méthodes factory statiques aux interfaces List, Set, Map pour créer des instances immuables de façon concise. Ancienne méthode (verbose) Set<String> set = new HashSet<>(); set.add(A); set.add(B); set.add(C); set = Collections.unmodifiableSet(set); List<String> l
Java 9 améliore le format JAR pour permettre plusieurs versions de classes/ressources selon la plateforme Java. MANIFEST.MF contient Multi-Release: true dans sa section principale. Le répertoire META-INF/versions/ contient des sous-répertoires par version (ex: 9 pour Java 9) avec les classes/resso
Loutil javadoc génère la documentation. Avant Java 9 : format HTML 4.0. Java 9 ajoute loption -html5 pour générer en HTML5. Ancienne documentation (JDK 7) Code source Tester.java avec javadoc standard. C:\JAVA> javadoc -d C:/JAVA Tester.java Loading source file Tester.java... Constructing Javado
Java
Commencez petit : 7 étapes éprouvées pour bâtir un programme analytique maintenance
Techniques optimales pour produire des petites pièces tôlerie de haute qualité
Le guide ultime de la conception et de la performance des boules de bowling
Comment le Fraisage 3 et 5 Axes Réduit les Coûts de Production CNC