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(); […]
juin
2014
Maintenant que Java 8 est sorti… on va en profiter pour regarder un peu plus loin et viser Java 9. Il est encore trop tôt pour en avoir un aperçu détaillé, mais une « petite » proposition d’évolution a retenue mon attention.
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 […]
mars
2014
La JSR 310 (Date & Time API) vient d’être officiellement approuvée ! JSR #310 Date and Time API Final Approval Ballot
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 […]
mars
2012
Petite astuce suite à une discussion twitter avec Guillaume Laforge concernant une fonctionnalité de l’API tierce JRegex : l’incomplete matching. Le tout à fini dans un billet de son blog anglophone : Incomplete string regex matching, et j’en profite pour faire de même en français ! Mais d’abord qu’est-ce que l’incomplete matching ? Cela permet simplement de valider partiellement une expression régulière. Quel intérêt ? Cela permet par exemple de vérifier une saisie en cours […]
novembre
2011
Il semblerait que la conférence Devoxx nous ait apporté quelques informations concernant les lignes directives de Java 9. On devrait y retrouver les reified generics et l’unification des primitives.
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 […]
Tutoriels
Discussions
- [ fuite ] memoire
- L'apparition du mot-clé const est-il prévu dans une version à venir du JDK?
- Difference de performances Unix/Windows d'un programme?
- Classes, méthodes private
- Possibilité d'accéder au type générique en runtime
- Définition exacte de @Override
- Recuperation du nom des parametres
- [REFLEXION] Connaitre toutes les classes qui implémentent une interface
- jre 1.5, tomcat 6.0 et multi processeurs