“==”.equals(“equals()”)

Par | Classé dans Débutant, Java | Le 11/01/2011

Tags « »

0

Les fondamentaux

En java, la comparaison s’effectue principalement en utilisant 3 méthodes qui n’ont pas les mêmes buts :

  1. L’opérateur == est utilisé pour comparer les types primitifs et les objets. Il compare uniquement les références. Cela signifie que l’opérateur retournera “true” uniquement si les 2 objets comparés sont les mêmes en mémoire.
  2. La méthode ‘equals()’ permet de comparer 2 objets. Toutes les classes ont une méthode ‘equals()’ héritée de la classe Object. Cette méthode compare la valeur de 2 objets. S’ils représentent la même chose, alors la méthode doit renvoyer “true”. Cette méthode est plus difficile qu’il n’y paraît à implémenter. Je pourrais revenir dessus ultérieurement dans un prochain article.
  3. La méthode ‘compareTo()’ permet de comparer 2 objets comme la méthode ‘equals()’. Contrairement à ‘equals()’, les classes ne définissent pas toutes cette méthode. Pour cela il faut hériter de l’interface Comparable. Cette méthode est utilisée pour pouvoir trier les objets l’implémentant. Si les 2 objets sont égaux, alors la méthode doit renvoyer 0 ; si un object O1 est considéré précédent un autre object O2 alors il faut renvoyer -1, si O2 précède O1 alors il faut renvoyer 1.
int i = 5, j = 5, k=8;
Integer int1 = new Integer(42) ;
Integer int2 = new Integer(42) ;
String str1 = "Blog";

java.util.Date t1 = new java.util.Date();
Thread.sleep(1000l);
java.util.Date t2 = new java.util.Date();

System.out.println (i == j); // print true
System.out.println (int1 == int2); // print false
System.out.println ("Blog".equals(str1)); // print true
System.out.println (str1 == "Blog"); // déconseillé mais écrit true
System.out.println (t1.compareTo(t2)); // print -1

Les comparaisons faites avec ‘equals()’ ou ‘compareTo()’ entre une variable et une constante doivent être réalisées comme à la ligne 13 de l’exemple précédent, c’est-à-dire qu’il faut comparer la constante avec la variable à tester. Ceci permet d’éviter une potentielle NullPointerException si l’on faisait ‘str1.equals(“Blog”)’.

Le cas particuliers des enum

Depuis java 5, les enum ont été introduits dans java. Les enum pourraient faire l’objet d’un article complet, mais il est bon de savoir que les enum ont été créés pour être comparés avec l’opérateur ‘==’. N’hésitez donc pas à les utiliser ! En plus d’être très lisibles, ils sont performants à l’usage.

Lire la suite…

Devoxx 2010, vu de l’intérieur

Par | Classé dans Conférence, Java | Le 06/12/2010

Tags « »

1

Mise à jour du 6 décembre 2010 :CloudBees a levé 4 millions de dollars. Plus de détails sur le blog de CloudBees.

Devoxx 2010 s’est tenue toute cette semaine à Anvers. Entre 2 présentations de Brian Goetz, Joshua Bloch ou Mark Reinhold, je suis allé voir quelques personnalités du monde java afin d’en savoir plus sur leur actualité et leurs impressions.

Stephan Janssen

Stephan Janssen pictureCréateur du BeJUG et de Devoxx. Je suis allé le voir pour avoir quelques détails sur l’organisation d’un tel évènement.

Bonjour Stephan, peux-tu présenter Devoxx à ceux qui ne connaissent pas ?
Devoxx est une conférence annuelle qui est organisée par le Java User Group belge. C’est déjà la neuvième édition. Quelques statistiques : 3000 personnes qui viennent de 40 pays, et cela dure 5 jours à Anvers dans le deuxième plus grand complexe de cinéma d’Europe.
Lire la suite…

Bonne nouvelle pour java sur mac

Par | Classé dans Java, News | Le 13/11/2010

0

Il y a quelques jours Apple annonçait sa volonté de ne plus supporter java officiellement, allant jusqu’à le qualifier de ‘deprecated’. Que les fans utilisateurs de mac se rassurent, il n’en sera rien, bien au contraire : la suite ici

Formations SpringSource : Attention arnaque

Par | Classé dans Java | Le 23/10/2010

Tags « »

3

Les consultants chez In Fine suivent régulièrement des formations internes ou externes, en finance ou en IT. C’est dans ce cadre qu’un des nôtres devait suivre une formation spring, et qui mieux que springsource pour dispenser cette formation ! Erreur !! Après l’avoir inscrit (les formations sont en règle générale payables d’avance), springsource nous informe quelques jours avant le début de la formation que celle-ci n’aura finalement pas lieu, faute d’avoir un nombre suffisant d’élèves. Soit. Un peu étonné quand même que springsource n’arrive pas à remplir une session, nous prenons une autre formation dispensée par un confrère et nous attendons tout naturellement le remboursement de cette formation. Attente vaine, puisque après 8 mois et un nombre incalculable de relances, l’argent est toujours dans la poche de springsource. Peut-être testent-ils un nouveau modèle économique :-(

En tout cas, merci springsource, ça mérite bien un petit billet non ? et un lien, paf : arnaque springsource

Java, enfin une roadmap !

Par | Classé dans Java, News | Le 21/09/2010

Tags « »

0

On n’y croyait plus, mais c’est arrivé ! Oracle vient de présenter à JavaOne ses projets pour Java SE et la communauté. Plusieurs points à retenir :

– openJDK plus que jamais d’actualité, avec 2 releases majeures prévues en 2011 et 2012 qui seront la base pour JDK7 & JDK8
– Fusion du meilleur de jrockit et hotspot
– JDK et JRE restent gratuit (!) avec la même license

Les interminables débats pour savoir si telle ou telle fonctionnalité  devait être intégrée dans la version 7 sont derrière nous. Pour ceux qui attendaient les closures (lambda expression), la modularité (jigsaw) ou encore le framework swing, on sait désormais que ça ne sera pas pour la version 7, et rien n’est promis pour la version 8.
Pour la liste complètes des fonctionnalités , c’est par ici