août
2014
La méthode static Collections.sort() permet de trier les éléments d’une List. Lorsqu’on y regarde de plus près son implémentation peut surprendre : @SuppressWarnings("unchecked") public static void sort(List list, Comparator c) { Object[] a = list.toArray(); Arrays.sort(a, (Comparator)c); ListIterator i = list.listIterator(); for (int j=0; j<a.length; j++) { i.next(); […]
avril
2014
Les processeurs multi-coeurs sont de plus en plus courant, mais pas toujours exploité correctement car la majorité des applications restent sur une structure séquentielle des opérations. Alors comment utiliser toute la puissance des processeurs multi-coeurs pour améliorer le traitement de flux de données ? C’était une des réponses apportées par l’API Fork/Join de Java 7, mais son API nécessite d’importante modification du code afin de gérer les aspects lié à la parallélisation du traitement… ce […]
mars
2014
L’API de Collections de Java apporte la notion d’ordre des objets, soit via l’interface Comparable<T> qui définit l’ordre naturel, soit via l’interface Comparator<T> qui permet de définir des règles d’ordonnancements diverses. La majeur partie des classes et méthodes qui nécessite un ordonnancement utilisent donc un Comparator<T>. Bien que sur le principe cela ne soit pas très complexe en soit, cela restait relativement verbeux à écrire et source de bug ou comportement étrange en cas de […]
septembre
2013
Java 8 arrive à petit pas, et la version « Developer Preview » est désormais disponible au téléchargement : http://jdk8.java.net/download.html. La « Developer Preview » est toujours une version en développement (et donc à ne pas utiliser en production), mais qui est suffisamment stable pour permettre à tous les développeurs de l’essayer, tout en incluant toutes les fonctionnalités prévus pour la version finale (même s’il pourra encore y avoir des ajustements d’ici là. Pour rappel la version finale est […]
novembre
2011
Comme pour le JDK7, les premiers builds en « Developer Preview » du JDK8 sont disponible depuis quelques temps à l’adresse habituelle : http://jdk8.java.net/download.html Mais pour l’instant, ces builds s’avèrent peu intéressant pour le commun des développeurs, du fait qu’ils se contentent principalement d’intégrer des correctifs sans « grosses » nouvelles fonctions ou APIs. Mais le projet Lambda a publié une autre « Developer Preview » plus intéressante : elle ne prend pas le dernier build du JDK8 mais elle y […]
novembre
2011
Le groupe de travail du projet Lambda a pris une décision concernant la syntaxe des lambdas de Java SE 8 : Syntax decision (en anglais dans le texte). C’est donc la syntaxe de C# qui sera reprise (dans les grandes lignes – des détails pourraient encore être modifiés). Cette syntaxe se décompose en deux parties, séparées par une flèche => La partie gauche comporte la signature de la méthode, avec le nom des différents paramètres […]
août
2011
Petit à petit le projet Lambda suit son cours, et le brouillon des spécifications comment à bien s’étoffer. En fin de semaine dernière, Alex Buckley a publié une nouvelle version de ce brouillon dans la mailling-list, que l’on peut retrouver ici : Project Lambda: Java Language Specification draft version 0.1.5. S’en est suivi plusieurs discussions, dont un débat sur la syntaxe d’appel d’une expression lambda.
août
2011
Le projet Lambda, poussé par Oracle a peut-être engendrer un nouveau bébé, les « public defenders methods« , dont l’objectif est de permettre de faire évoluer les interfaces Java. De prime abord cela n’a aucun lien avec les expressions lambdas (ou « closures »), mais l’intérêt étant de pouvoir réellement enrichir l’API avec ces dernières. En effet les interfaces étant figées, il est assez difficile de faire évoluer l’API : le simple ajout d’une nouvelle méthode entraine de nombreuses […]
août
2011
En fin d’année dernière, le report de Java 7 laissait envisager l’intégration des closures. Cela a donné naissance au projet Lambda dont l’objectif était de regrouper les différents travaux afin d’en sortir une spécification claire et fonctionnelle quitte à se passer de certain « power-concept ». Il en ressort une proposition d’expressions Lambda relativement allégée vis à vis des multiples et très complètes propositions de closures qui ont pu être proposées par le passé. Mais cela s’accompagne […]
août
2011
Les JSRs sont des documents primordiaux du Java Community Process, puisqu’il s’agit des documents de travail qui seront soumis aux votes de la part des membres du-dit JCP. Longtemps attendu, la JSR de Java 7 est enfin là, et elle n’est pas seule, puisqu’on y retrouve en tout quatre nouvelles JSRs : JSR 334: Small Enhancements to the Java™ Programming Language (Le projet Coin pour Java 7) JSR 335: Lambda Expressions for the Java™ Programming […]
Tutoriels
Discussions
- [REFLEXION] Connaitre toutes les classes qui implémentent une interface
- Recuperation du nom des parametres
- L'apparition du mot-clé const est-il prévu dans une version à venir du JDK?
- [ fuite ] memoire
- Classes, méthodes private
- Difference de performances Unix/Windows d'un programme?
- Possibilité d'accéder au type générique en runtime
- Définition exacte de @Override
- jre 1.5, tomcat 6.0 et multi processeurs