Long a = 4l; Long b = 4l; a == b //true
Long a = 128l; Long b = 128l; a == b //false
Si la valeur de Long est comprise entre [-127,128], vous pouvez utiliser "==" pour déterminer si elle est égale. Si elle n'est pas dans cette plage, "==" ne peut pas l'être. utilisé. La raison est la suivante : code source Explication :
public static Long valueOf(long l) { final int offset = 128; if (l >= -128 && l <= 127) { // will cache return LongCache.cache[(int)l + offset]; } return new Long(l); }
Si ce n'est pas entre [-127,128], un nouvel objet sera créé Naturellement "==" deux objets différents, le résultat doit être faux.
Long a = 128l; Long b = 128l; a.longValue() == b.longValue() //true
Long a = 128l; Long b = 128l; a.equals(b);//true
Voici le code source de cette méthode :
public boolean equals(Object obj) { if (obj instanceof Long) { return value == ((Long)obj).longValue(); } return false; }
De manière générale, "==" est suffisant pour comparer deux types de données de base. La comparaison de types longs est rarement utilisée.
Mais récemment, lorsque j'écrivais un projet, j'ai rencontré deux comparaisons de types Long. À cette époque, j'utilisais également directement des doubles égaux. Cependant, lors du débogage, j'ai constaté que le code n'entrait pas dans le corps du jugement lorsque les deux types Long. ont été comparés et jugés, puis recherchés en ligne. Les questions associées sont en fait très simples, mais si vous ne le savez pas, il est facile de tomber dans le piège.
Vous pouvez faire en sorte que deux variables de type Long appellent respectivement la méthode ==longValue()== pour y parvenir.
Code :
Long a=...; Long b=...; if (a.longValue() == b.longValue()) { ...; }
En fait, Long est une sorte de classe d'empaquetage de données Java. Ce qui précède est le cas où la classe d'empaquetage Long est convertie en type de données de base long. Ce qui suit est le cas où d'autres classes d'empaquetage de données sont. déballé et converti en types de données de base :
Pour convertir Integer en int, vous devez appeler la méthode intValue(). Pour convertir Double en double, vous devez appeler la méthode doubleValue(). Pour convertir Float en float, vous avez besoin. pour appeler la méthode floatValue()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!