Il est courant dans les cours de programmation d’avoir un exercice où l’on demande de permuter deux variables. Bien souvent, on utilise une variable intermédiaire. Mais il est tout à fait possible de s’en passer. Si cela présente peu d’intérêt niveau optimisation, en voici la démonstration en guise de challenge.
Archives pour la catégorie Java
Utiliser un switch pour des cotes de test
Un étudiant a demandé s’il était possible d’utiliser un switch pour afficher une cote ou un message d’appréciation. A priori, le switch se limite à évaluer des valeurs seules et non des intervals. Mais c’est chose possible avec l’approche suivante.
Les inner class (question de certification OCJP)
Si vous avez contemplé passer la certification OCJP (anciennement SCJP) vous avez certainement rencontré des questions test qui vous ont fait réflêchir. Un exemple est le code ci-dessous dont on demande la sortie.
class MyClass
{
public static void main (String[] args)
{
String s = "whizlab";
System.out.println(s);
}
public class String
{
public String(String s)
{
System.out.println("simulator");
}
}
}What is the output?
A. whizlab simulator
B. whizlab
C. Compilation error
D. None of the above
Faire fonctionner Tess4J en déploiement
Tess4J est un wrapper JNA pour l’API de reconnaissance de caractères Tesseract.
Si celui-ci fonctionne comme prévu dans Eclipse ou un autre IDE, certains soucis apparaissent lorsqu’on essaye de l’utiliser dans un jar exécutable ou dans une application finale.
Voici comment y remédier.
Limitation du nombre d’instances d’une classe
Dans un groupe Java sur Facebook une personne a demandé comment s’y prendre pour limiter le nombre d’instances d’une classe donnée. On pourrait imaginer que cela serve dans des cas de figures où on a besoin d’un nombre limité de « jetons », par exemple dans un environnement client-serveur.
A titre d’exercice je me suis amusé à programmer une solution. Sans nécessairement être parfaite, elle démontre comment traduire cette contrainte.
Quand une variable n’est pas égale à elle-même
Est-il possible de faire en sorte que « pas égal » soit imprimé dans la console sans modifier la structure suivante ?
System.out.println("égal");
}
else
{
System.out.println("pas égal");
}
Un Filefilter reprenant plusieurs extensions de fichier
Avec le JFileChooser de Swing il est possible d’ajouter des FileFilter pour filtrer la liste de fichiers affichés.
Cet article va décrire un FileFilter personalisé capable de filtrer selon plusieurs extensions de fichiers. Cela peut être utile si un format de fichier peut avoir plusieurs extensions ou si on souhaite regrouper plusieurs extensions sous un même nom (ex: images, sons, archives ).
Créer des instances à travers un enum
Le plus souvent un enum sert à reprendre une liste de constantes que l’on peut notamment utiliser de manière sémantique lors du passage de paramètres (ex: Color.white). Mais en Java il existe d’autres possibilités dont une manière pratique pour créer des instances que je vais décrire dans cet article.
Changer la JVM utilisée par défaut par Ubuntu et Tomcat
Pour des raisons de compatibilité avec certaines applications il peut être nécessaire de changer la JVM utilisée par Ubuntu et Tomcat. Par défaut, ceux-ci utilisent l’OpenJDK. Voici comment procéder.
Architecture N-Tier, kézako?
Dans la description de mon blog j’avais promis de partager quelques informations sur la conception. Voici donc un premier article sur ce qu’on appelle une architecture n-tier.