| Home | Analyses | C++ | Java | Internet | Pattern | Securité | |
Quelques articles sur Java.
Les sources de l'article "XML : ouverture sur le monde" de Linux Mag n°103 sont ici. La mise en page ayant fait disparaite les lignes de sources mises en valeurs ou barrée, un correctif est présent ici.
Voici quelques guides d'utilisation de java afin d'améliorer la qualité des programmes.
La construction d'une instance Java s'effectue en plusieurs étapes qu'il est intéressant à connaître. Cela peut avoir des effets de bords non maîtrisés.
Comment utiliser correctement l'adjectif synchronized ? Comment rédiger une classe pour que celle-ci soit thread-safe ?
Utiliser correctement les exceptions en java n'est pas aussi facile que le marketing cherche à nous le faire croire. Ce document explique comment rédiger correctement une méthode pour bénéficier du mécanisme d'ex-ception de java sans perturber l'application.
Il n'est pas possible, avec java, de contrôler l'usage qu'une classe fera d'un pointeur. Le C ANSI et le C++ proposent des références constantes. Ce document explique comment offrir ce concept avec Java.
Comment proposer des énumérations contrôlées par le compilateur java ? Ce document explique comment rédiger cela. Le JDK 5 propose maintenant une syntaxe spécifique.
Comment fonctionne les inner-classes ? Ce document explique comment les utiliser et comment elles fonctionnent.
toString() Ce document explique l'utilisation et la rédaction de la méthode. Il explique également comment fonctionne la concaténation de chaîne de caractère.equals() La méthode equals() de Java est très difficile à rédiger.
Ce document explique pourquoi et les différentes démarches possibles.hashCode() Comment rédiger la méthode hashCode() ? Ce document propose une démarche pour cela.clone() Comment rédiger la méthode clone() ? Quand utiliser Cloneable ?finalize() Quand est appelée la méthode finalize() ? Comment la rédiger ?Quel est le type de null ? Il n'est
généralement pas nécessaire de le savoir. Mais
parfois... Ce document explique comment le
compilateur manipule la constante null.
Ce document explique comment fonctionnent les class loaders. Un exemple de source est disponible ici.
Ce document explique le format des fichiers .class utilisés par les class loaders.
Ce document explique les problèmes d'accès à la mémoire en architecture multi-processeur, et les choix effectués par les JVM 5+.
Ce document décrit différentes techniques pour optimiser un programme Java. Il y a trois objectifs à obtenir : une meilleure performance, une limitation des ressources nécessaires et un chargement rapide de l'applet.
Ce document explique comment protéger une application java et comment placer le code sensible dans un bac-à-sable. Les sources sont présents ici.
Ce document explique les failles des implémentations des tables de hash et des expressions régulières de java, permettant d'obtenir un deni de service, et propose des contres mesures.
Les sources sont présents ici.
Comment rédiger des tests objets ? Comment prouver qu'une classe est correctement rédigée ? Ce document propose une démarche.
Quels sont les erreurs classiques des applications java ?
Cette article propose différentes approches pour partager des variables entres serveurs. Les sources sont présents ici.
Les applications et les frameworks ont besoins de paramètres pour adapter leurs comportements à différents usages, différents déploiements ou différents contextes d'exécution. Ce document explique les différentes stratégies qu'offre java pour gérer les paramètres, et sélectionne les solutions pérennes les plus souples.
Très souvent, les paramètres informant sur l'environnements d'exécution sont présent dans des fichiers properties, agrégés dans les archives WAR ou EAR ou installés dans des répertoires spécifiques du ser-veur d'application. Cette approche est gênante pour plusieurs raisons. Nous allons voir pourquoi et comment utiliser les serveurs JNDI pour améliorer les procédures d'installations, de mise à jour, de dé-ploiement, de partages de paramètres entres noeud d'un clusters, etc. dans le respect des normes J2EE. Cet article explique pourquoi et comment utiliser JNDI.
Egalement, la présentation à la conférence Uniformiser le déploiement J2EE au salon Solution Linux 2008 ainsi que l'article associé, publié dans GNU Linux Mag.
Nous allons étudier comment paramétrer un algorithme en C. Puis nous étudierons une approche plus puissante, les functors, grâce au C++. Enfin, nous propagerons nos idées à Java, et étudierons les techniques permettant de contourner les limitations de ce langage vis à vis de la généricité.
Quelques patterns et bibliothèques pour Java.
Ce document explique la conception et la réalisation d'un langage de développement permettant d'analyser les différentes versions des navigateurs. Les sources sont présents ici.
La syntaxe de Java permet de bloquer un objet lors d'une
méthode à l'aide de l'adjectif synchronized
, mais ne permet pas
de le bloquer dans une méthode et de le débloquer dans une
autre.
Comment offrir une tolérances aux pannes et une répartition de charges lors de l'invocation d'un service Web ? Cette article explique comment proposer cela avec l'API d'Axis. Le code et la documentation du plugin sont disponibles ici.
Comment offrir des fonctionnalités HA à un driver JMS en étant dépourvu ? Cette article explique comment proposer rédiger un driver JMS à l'aide de la technique des functors. Le code et la documentation du driver JMSsont disponibles ici.
Comment générer des classes et des fichiers lors de la compilation de classes annotées ? Cette article explique comment utiliser le JSR269.
Une introduction à l'utilisation d'AspectJ.
Comment ajouter l'agrégation a Java ?
Ce document explique quand et comment utiliser des singletons. Trop souvent, ce pattern est mal utilisé.
Celui-ci explique l'historique de sa genèse.
Il n'est pas possible en Java d'avoir une référence sur une
méthode
. Il n'est donc pas possible d'utiliser un
mécanisme pourtant très courant : Les call-backs. Pour
lever cette limitation, il faut utiliser un mécanisme particulier
de traduction de ce concept (La version 1.1 du JDK supprime cette
limitation).
Le mécanisme de protection
des instances en Java
lors d'une exécution en multi-tâches ne permet pas d'avoir
plusieurs traitements accédant en lecture au même objet.
Cela peut être la cause d'étreinte mutuelle. Pour
améliorer le mécanisme de blocage, je propose cette
librairie.
Voir aussi :
Programmations et conceptions objets
"C++, Java, Smalltalk"