background preloader

Java 8 est disponible, la plate-forme se met aux expressions lambdas, tour d'horizon des nouveautés

Java 8 est disponible, la plate-forme se met aux expressions lambdas, tour d'horizon des nouveautés
Si les versions 6 et 7 de Java étaient des évolutions douces : Java 8 est d'un tout autre ordre. Plus de 56 nouvelles fonctionnalités ont été ajoutées ( Les arrivées des lambdas, des méthodes par défaut, des interfaces fonctionnelles et de Stream vont modifier en profondeur le langage et donc l'écosystème Java tout entier. Nous pouvons aussi citer l'incorporation d'une nouvelle API pour gérer les dates, de nouvelles annotations et d’un nouveau moteur d'exécution JavaScript. Java 8 devrait ainsi avoir un impact au moins aussi important que Java 5 à son époque (rappelez-vous l'apparition des Generics). Il faut donc s'y préparer dès à présent. Les nouveautés du langage Interfaces fonctionnelles : connues précédemment sous le nom de Single Abstract Method interfaces (SAM Interfaces), cette nouveauté introduit les interfaces qui possèdent uniquement une seule méthode d’instance abstraite. Prenons l'exemple du tri des éléments d'une collection.

Java 7 : les nouveautés du langage | Sébastien Prunier Le 28 juillet 2011, Oracle a officiellement annoncé la sortie de la version 7 de Java Standard Edition ! On n’y croyait plus :-) C’est l’occasion de regarder ce qu’il y a de nouveau et de vous présenter – quelques exemples à l’appui – les éléments intéressants à retenir. Cet article n’a pas pour objectif de décrire toutes les nouveautés apportées dans le JDK 1.7, mais se concentre simplement sur les évolutions du langage (Projet Coin - JSR 334) : Utilisation des "String" dans les instructions "switch / case"Nombres binaires et utilisation de l’underscore dans l’écriture des nombres"Catch" multiple et propagation d’exceptions avec vérification des sous-typesInférence de types avec l’opérateur "diamond" (<>)Instruction "try-with-resource"Invocation simplifiée des méthodes utilisant les "varargs" Si vous souhaitez voir l’ensemble des évolutions, consultez les release notes officielles. Utilisation des "String" dans les instructions "switch / case" Avant : Après : int bignumber = 45321589;

Java 8 Stream API Examples - Filter, Map, Max, Min, Sum, Average | Java67 It's been couple of weeks Java 8 has released and lot of Java developers are trying their hands on major enhancement e.g. lambda expression, method reference, new data and time classes, and more importantly Stream API for bulk data operations. In my opinion, best way to learn any new feature or functionality is by writing short examples, and this is what prompt me to write this article. In this Java 8 tutorial, I have shared simple examples of package. Streams are one of the most important addition on JDK, it allows you to leverage other changes e.g. lambda expression, method reference, functional interface and internal iteration introduced via method. Some of the most common things we do with Streams are filtering a collection, applying map and reduce function on all elements of collection and taking advantage of lazy evaluation, built-in parallelism via . Example 1 : Counting Empty String Example 2 : Count String whose length is more than three

Tout sur Java 8 TechEmpower, une entreprise de développement d'applications personnalisées basée à El Segundo, Californie, a posté une entrée de blog intitulée "Tout sur Java 8". Le billet de blog est un résumé complet des changements impactant les développeurs qui viennent avec Java 8. Voici une rapide vue d'ensemble du billet. Améliorations sur les Interfaces Les interfaces peuvent désormais définir des méthodes statiques. public static <T extends Comparable<? Les interfaces peuvent désormais fournir des méthodes par défaut. Notez qu'une interface ne peut pas fournir d'implémentation par défaut pour toute les méthodes de la classe Object. Interfaces Fonctionnelles Une interface fonctionnelle est une interface qui défini exactement une méthode abstraite. @FunctionalInterface public interface Runnable { public abstract void run(); } Notez que le compilateur Java considérera toute interface répondant à la définition comme interface fonctionnelle, que l'annotation FunctionalInterface soit présente ou non.

Chap6 du livre sur le Craftsmanship Les lecteurs assidus de notre blog en ont maintenant l’habitude : cet article résume un nouveau chapitre de l’excellent livre de Sandro Mancuso Software Craftsmanship – Professionalism Pragmatism Pride. Le chapitre 6 décrit la vision partielle du manifeste agile à propos du déroulement d’un projet. Il nous montre que ce qu’il est vraiment important de faire pour que votre projet soit un succès d’un point de vue d’un software craftsman. Si vous êtes intéressés par la vision d’un craftsman sur son logiciel vous pouvez retrouver Sandro dans le catalogue de formation de Xebia Training. Déjà publié : Certaines sociétés mettent en place des structures très rigides, et essaient de contrôler les personnes et les processus afin de se donner l’impression de maîtriser les projets informatiques. Le code en production est effectivement la mesure la plus tangible de l’avancée d’un projet, comme le déclare le manifeste agile. Au début d’un projet, les fonctionnalités sont rapidement livrées.

Java 7 L'objectif du projet "Coin" est d'apporter de petites modifications au langage. On est loin ici des "révolutions" de Java 5.0 (Generics, enums, annotations...). L'idée principale étant d'apporter de petits correctifs ou évolutions simples et efficaces pour faciliter la vie du développeur. Expression littérale binaire▲ En Java, comme dans un grand nombre de langages, les expressions numériques entières peuvent être représentées de trois manières distinctes : le plus couramment, en notation décimale (exemple : 255) ; en notation hexadécimale, préfixée par 0x (exemple : 0xff) ; en notation octale, préfixée par 0 (exemple : 0377). Désormais, le langage s'enrichit avec la notation binaire, préfixée par 0b, qui permet donc de représenter un nombre directement sous sa forme binaire (exemple : 0b11111111). Quelques exemples : Sélectionnez Formatage des expressions numériques▲ Le seul et unique intérêt consiste à améliorer la relecture du code. Switch sur les String▲ Quelques exemples avec Java 5/6 :

Healthy Codebase and Preparatory Refactoring In a recent episode of the RubyRogues podcast, Martin Fowler and Jessica Kerr literally spoke my mind. They named two concepts that I deeply believe in and care about: Healthy Codebase and Preparatory Refactoring. The fact that they have expressed them in beautiful words and powerful metaphors enables me to share them with you in this article. After 43 minutes of discussions on the steps of refactoring, Martin introduced the concept of Healthy Codebase. “A healthy codebase allows you to keep going fast. We have to realize that unclear code slows us down. “Many times, I run into teams that say: ‘Management isn’t allowing us to do a quality job here because it will slow us down. Martin then illustrates his metaphor of the “Healthy Codebase”: “If you keep yourself healthy then you’ll be able to run faster. So a “Healthy codebase” is a well written codebase that is clean and easy to understand. Preparatory Refactoring has some great benefits as it makes you go through the following steps:

Les nouveautés Java 7 Java 7 est la première version sous la licence GPL Nom de code Dolphin , Java 7 met l’accent sur la productivité et la clareté. Nous allons voir quelques améliorations issues du projet coin de OpenJDK, mais ce n’est pas tout, d’autres fonctionnalités ont été ajoutées. Dans cet article je vais vous décrire les nouvelles fonctionnalités que nous propose cette version, cependant la liste des fonctionnalités étant exhaustive nous traiterons uniquement la partie JPL (Java Programming Language). Projet Coin quesaco ? Le projet Coin a pour but de determiner quel set d’instructions sont à ajouter dans le langage Java. Voici ce que comprend le projet Coin concernant Java 7 : Strings in switchBinary integral literals and underscores in numeric literalsMulti-catch and more precise rethrowImproved type inference for generic instance creation (diamond)try-with-resources statementSimplified varargs method invocation Traduction : Strings in switch Binary integral literals and underscores in numeric literals

Related: