juin
2010
Java se distingue des autres langages par sa gestion des exceptions qui introduit la notion de checked-exception, c’est à dire qu’il gère des exceptions vérifiées dès la phase de compilation, en forçant les développeurs à les gérer. En clair, le compilateur analyse le code et génère des erreurs dans le cas où les exceptions ne sont ni traitées (via des try/catch) ni déclarées dans la signature de la méthode (via throws). L’objectif original de tout […]
février
2008
L’API Java est assez imposante et complète, mais elle contient toutefois un certain nombre de classe et/ou méthode qui ne sont pas des plus simple à utiliser, ou qui ont un comportement très éloigné de ce que l’on peut trouver dans d’autre langage… ce qui les rends plus complexe et énigmatique. Si on prend comme exemple le langage C : on peut utiliser les différentes fonctions exec() pour exécuter un programme externe, ou directement la […]
août
2007
Java 5.0 a introduit un nouveau type enum dans le langage, afin de créer des énumérations simple « à la C« tout en bénéficiant des avantages de l’OO : les enums de Java sont de vrais classes et peuvent donc comporter des champs et des méthodes… Bien sûr l’API de réflection a été mise à jour afin de gérer ce nouveau type d’objet, notamment avec les méthodes isEnum() et getEnumConstants() : la première permet de savoir […]
octobre
2006
Je viens juste de tomber sur une petite astuce javadoc bien pratique ! Comme vous devez sans doute le savoir (en tout cas je l’espère), les commentaires javadoc sont utilisés pour générer la documentation HTML de vos classes, et on peut donc utiliser les tags HTML pour formater nos commentaire comme bon nous semble… Toutefois, cela pose un léger problème : certains caractères doivent être encodé de manière spécifique. Ainsi par exemple, pour représenter les […]
septembre
2006
Vous le savez sûrement, Java 5.0 a introduit un nouveau concept dans le langage : les Generics (également appelé types paramétrés en français). Au prime abord cela ressemble énormément aux Templates du C++ du fait de leurs syntaxes relativement proche et de leurs objectifs communs : écrire des méthodes/fonctions et classes génériques tout en permettant de les utiliser de manière spécialisé (c’est à dire en utilisant un type concret plutôt qu’un type abstrait). Quels sont […]
juin
2006
Il y a deux semaines, je vous présentais une petite API permettant de gérer la configuration d’une application avec les Annotations, et il se trouve que Romain Guy a eu une idée similaire, puisqu’il présente Fuse, une petite librairie destinée à modifier les ressources des interfaces graphiques. Le procédé est assez proche (les attributs d’une instance de classe sont automatiquement modifiés selon les valeurs d’un fichier de propriété), mais plus adapté aux interfaces graphiques (gestion […]
juin
2006
Une application doit pouvoir être configurable facilement, que ce soit par une interface graphique ou des fichiers de configuration. En Java, cela s’effectue généralement via la classe Properties qui permet de lire et d’écrire des propriétés dans un fichier en gérant des associations clef-valeur… Mais la plupart du temps cela devient vite complexe, car en plus du code pour la lecture/écriture du fichier, chaque propriété doit être récupérée individuellement (et éventuellement parsée puisqu’il s’agit de […]
décembre
2005
A coté de toutes les nouveautées de Java 5.0, le type énuméré peut sembler un peu dérisoire, voir inutile… Il a pourtant un grand nombre d’atout dans sa poche… Le type énuméré enum de Java 5.0 permet d’apporter une plus grande sécurité dans vos applications, puisque le compilateur peut ainsi vérifier la validité des valeurs à la compilation. Et cela apporte déjà une bonne raison de les préférer aux champs static final int habituellement utilisés… […]
décembre
2005
Dans un environnement multi-thread, on peut se retrouver dans un état incohérent si un thread modifie des données pendant qu’un autre est en train de les lire. Pour éviter cela, il est nécessaires de synchroniser les accès aux données en utilisant un mécanisme d’exclusion mutuelle qui permet de s’assurer que les données ne seront utilisées que par un seul thread à la fois… Java permet de gérer cela simplement avec le mot-clef synchronized. Toutefois, si […]
Tutoriels
Discussions
- [REFLEXION] Connaitre toutes les classes qui implémentent une interface
- Possibilité d'accéder au type générique en runtime
- Recuperation du nom des parametres
- [ fuite ] memoire
- L'apparition du mot-clé const est-il prévu dans une version à venir du JDK?
- Définition exacte de @Override
- jre 1.5, tomcat 6.0 et multi processeurs
- Difference de performances Unix/Windows d'un programme?
- Classes, méthodes private